计算机图形学:Matlab编程画直线(DDA算法)
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/06/17 06:20:56
计算机图形学:Matlab编程画直线(DDA算法)
DDA-line(x1,y1,x2,y2,color)
int x1, y1,x2,y2,color;
{ int length;
float x, y,x,y ;
length =abs(x2-x1);
if (abs(y2-y1)>length)length=abs(y2-y1);
x=(x2-x1)/length; y=(y2-y1)/length;
x=x1+0.5*sign( x); y=y1+0.5*sign( y);
for(i=1;i
DDA-line(x1,y1,x2,y2,color)
int x1, y1,x2,y2,color;
{ int length;
float x, y,x,y ;
length =abs(x2-x1);
if (abs(y2-y1)>length)length=abs(y2-y1);
x=(x2-x1)/length; y=(y2-y1)/length;
x=x1+0.5*sign( x); y=y1+0.5*sign( y);
for(i=1;i
![计算机图形学:Matlab编程画直线(DDA算法)](/uploads/image/z/15973304-32-4.jpg?t=%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9B%BE%E5%BD%A2%E5%AD%A6%EF%BC%9AMatlab%E7%BC%96%E7%A8%8B%E7%94%BB%E7%9B%B4%E7%BA%BF%EF%BC%88DDA%E7%AE%97%E6%B3%95%EF%BC%89)
function DDA(x1,y1,x2,y2,color)
length =abs(x2-x1);
if abs(y2-y1)>length
length=abs(y2-y1);
end
dx=(x2-x1)/length;
dy=(y2-y1)/length;
x=x1+0.5*sign(dx);
y=y1+0.5*sign(dy);
hold on
for i=1:length
plot(round(x),round(y),'Color',color)
x=x+dx;
y=y+dy;
end
hold off
end
length =abs(x2-x1);
if abs(y2-y1)>length
length=abs(y2-y1);
end
dx=(x2-x1)/length;
dy=(y2-y1)/length;
x=x1+0.5*sign(dx);
y=y1+0.5*sign(dy);
hold on
for i=1:length
plot(round(x),round(y),'Color',color)
x=x+dx;
y=y+dy;
end
hold off
end