DDAL
function img = DDA(x1, y1 ,x2 ,y2, img1)
img = img1;
dx = x2 - x1;
dy = y2 - y1;
d = max(abs(dx), abs(dy));
kx = dx / d;
ky = dy / d;
x = x1;
y = y1;
for i = 1 : d
img(round(x), round(y)) = 1;
x = x + kx;
y = y + kx;
end;
end;
BresenhamCircle
function img = BresenhamCircle(x1, y1, r, img1)
x = 0;
y = r;
img = img1;
d = 3 - 2 * r;
while(x < y):
img(x1 + x, y1 + y) = 1;
img(x1 - x, y1 + y) = 1;
img(x1 + x, y1 - y) = 1;
img(x1 - x, y1 - y) = 1;
img(x1 + x, y1 + y) = 1;
-+
+-
-+
if(d < 0):
d = d + 4 * x + 6;
else:
d = d + 4 * (x - y) + 10;
y = y + 1;
end;
x = x + 1;
end;
end;
img = zeros(100, 100);
DDA(100, 100, 300, 100, img);
DDA(100, 200, 300, 200, img);
DDA(200, 100, 200, 200, img);
figure; imshow(img);