首页 > 编程知识 正文

计算机图形学画圆代码,java起泡法排序

时间:2023-05-05 09:42:35 阅读:168342 作者:3321

Bresenham圆绘制算法

一般来说,假设圆心位于坐标原点,如果圆心不在原点,则可以通过坐标转换使其与原点一致。 半径为r。 以原点为中心的圆c有四个对称轴: x=0、y=0、x=y和x=-y。 如果知道圆弧上的点p1=c(x,y ),则使用其对称性来确定关于四个对称轴的其他七个点,即:

P2=C(X,-y )表示,

p3=c(-x,y ),

p4=c(-x,-y )表示,

P5=C(Y,x )为,

p6=c(-y,x )表示,

P7=C(Y,-x )表示,

p8=c(-y,-x )。

这个性质称为八对称性。

因此,如果对八分之一圆弧进行扫描变换,就可以通过圆弧的八对称性得到整个圆。

【Bresenham算法】

简单图形的扫描变换常用的算法是Bresenham算法。 其思想在于用误差量来衡量点选择的近似度。 其过程如下。

以平面二维图形扫描变换为例,如果将所描绘的图形方程式设为f(x,y )=0,将所描绘的区域设为(x0,x ),将x方向设为最大位移方向,即,) x )y,则f ) x, y )也是误差测量函数,代入离散的点的值,如果大于0则正向偏移,否则向负向偏移。既然x是最大位移方向,则x每增加1,对应的y不增加1,或者增加-1,具体问题具体选择方法通过确定d=f(x1,y 0.5 )的正负来选择y的值。

实际上还需要考虑浮点数的计算问题。 基本的图形扫描转换算法最好能通过硬件实现,所以摆脱浮点数是最好的。 经常使用递归给定D的方法,而不是用f(x,y )直接给定)速度会变慢。

【圆的扫描转换算法】

作为画圆的例子,给出圆心的坐标(0,0 )和半径r,求出圆图像的最佳近似点。

圆是中心对称的特殊图形,如果圆能八等分,只需求解八分之一圆孤,其他圆孤通过对称变换得到。 我们求出的八分之一元孤为(0,r )-) r ),r ) )2),可知最大位移方向为x方向,x0=0,y0=R,每次相对于x自增加,判断y的误差量为f(x,y )

首先寻找递推关系,如果当前d=f(x1,y - 0.5 ) 0,y需要减去1,下一个d值为

d=f(x2,y - 1.5 ) ) x2 )2) y - 1.5 )2- r^2=(x1 ) )2) r ^2) 2x3-2y2=d2x-2y5时,当前d=) 0.5 y不变,只有x

的初始值,若d 0=f(1,R - 0.5 )=1.25 - R,则可以对d - 0.25进行判断。 由于递推关系中只有整数运算,d - 0.25为d 0.25,这与d0等价,所以D取初始值1 - R。

代码:

boolcenginapp :3360 draw circle (scpointpoint,int radius,UNINT *vb_start,intlpitch ) ) ) ) ) )

{if (! VB _ start|| l pitch=0(返回假; int mx=point.x,my=point.y; int x=0,y=radius; int r=0,g=255,b=0; int d=1-radius; //起点(0,r )、下一点中点(1,R-0.5 )、d=1*1(r-0.5 ) )-R*R=1.25-R,d仅参与整数运算,因此可以省略小数部分

while(yx )/yx即第一象限第一区八分圆

{

plot_pixel_32(xMX,y my,0,r,g,b,vb_start,lpitch );

plot_pixel_32(yMX,x my,0,r,g,b,vb_start,lpitch );

plot_pixel_32(-xMX,y my,0,r,g,b,vb_start,lpitch );

plot_pixel_32(-yMX,x my,0,r,g,b,vb_start,lpitch );

plot_pixel_32(-xMX,-y my,0,r,g,b,vb_start,lpitch );

plot_pixel_32(-yMX,-x my,0,r,g,b,vb_start,lpitch );

plot_pixel_32(xMX,-y my,0,r,g,b,vb_start,lpitch );

plot_pixel_32(yMX,-x my,0,r,g,b,vb_start,lpitch ); 是if(D0 )

{

d=d 2*x 3;

}else{

d=D2*(x-y ) 5;

y----;

}

x;

}return true;

}

效果图:

参考:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。