【摘要】:圆弧绘制方法的实质是确定某段圆弧的起点、终点和圆弧上的其他点的坐标位置,并将其栅格化,栅格化的过程与圆的绘制方法一致。设在平面上给定3个点的坐标P1,P2,P3,我们就可以产生从P1到P3的一段圆弧。这里的关键是要求出圆心坐标和半径,以及起点P1和终点P3所对应的角度ts和te。要产生从ts到te这段圆弧的最主要问题是离散化圆弧,即求出从ts到te所需运动的总步数n。
圆弧绘制方法的实质是确定某段圆弧的起点、终点和圆弧上的其他点的坐标位置,并将其栅格化,栅格化的过程与圆的绘制方法一致。
圆弧绘制的方法有很多,如三点法、起点圆心法、起点端点法等。不同参数的给定,绘制方法有一定差异,下面介绍三点法绘制圆弧的基本思路与步骤。
设在平面上给定3个点的坐标P1(x1,y1),P2(x2,y2),P3(x3,y3),我们就可以产生从P1到P3的一段圆弧。这里的关键是要求出圆心坐标和半径,以及起点P1和终点P3所对应的角度ts和te。在求出圆心坐标(xc,yc)和半径(r)后,则以角度t为参数的圆的参数方程可写为:
当t从0变化到2π时,上述方程所表示的轨迹是一整圆;当t从ts变化到te时,则产生一段弧。我们定义角度的正方向是逆时针方向,所以圆弧是由ts到te逆时针画圆得到的。
要产生从ts到te这段圆弧的最主要问题是离散化圆弧,即求出从ts到te所需运动的总步数n。可令:(www.daowen.com)
其中dt为角度增量,即每走一步对应的角度变化。下面的问题就是如何选取dt。通常,是根据半径r的大小来给定dt的经验数据。在实际应用中,应对速度和精度的要求加以折中,并适当调整dt的大小。
确定dt后,就可以计算圆弧上点的坐标(x,y),用类似绘圆的方法(如Bresenham算法、中点法、正负法、DDA算法)确定这些点相应的栅格位置:(xi+1,yi+1)或(xi+1,yi)。
实际绘制过程中,若用户给定的te<ts,则可令te=te+2π,以保证从ts到te逆时针画圆。如果n=0,则令n=2π/dt,即画整圆。为避免累积误差,最后应使t=te,强迫止于终点。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
有关数字测图技术的文章