治牛皮鲜好医院:如何用C语言绘制多边形?希望得到源程序

来源:百度文库 编辑:神马品牌网 时间:2024/05/06 17:08:25
原题是这样的:任意封闭多边形内影线填充算法及其软件实现

在各种设计图纸中常常用画有影线的区域来表示零件的剖切断面,设计任意封闭多边形区域的填充算法,并编写计算机程序。

提示:
(1)影线的计算
影线为直线,并且斜率k=tgα已知,因此直线方程可表示为:
y=kx+b
b为影线在y轴上的截距。不同位置的影线截距b不同,相邻两条平行影线截距差为⊿b。
设封闭多边形的顶点坐标为(xi,yi) 则最大截距和最小截距分别为:
bmax=max(yi-kxi) bmin=min(yi-kxi)
影线总数为 n=(bmax- bmin)/ Db

(2)影线与轮廓线求交点
从第一条影线开始,顺次取一条影线,
求出它与轮廓边的交点,方法是判断
该影线的截距是否落在轮廓边所对应
的截距区间内。具体算法步骤如下:
若影线的截距b没有落入当前这条轮廓边
两端点(pi,pi+1)所对应的截距(bi, bi+1)
范围之内,则说明影线与该轮廓边不相
交,则顺次取下一条边。否则,转下一
步求交运算。
交点坐标为

交点排序并绘制影线
将原始交点按x坐标递增顺序排序,然后按奇偶规则连线,绘出分段影线。
奇异点处理
当角点处的两条轮廓边位于影线的两侧时,应该算一个交点。
当角点处的两条轮廓边位于影线的同侧时,最好不计交点,或者算两个交点。

(5) 面向程序实现的算法描述
影线填充算法的步骤如下:
根据填充区域的数据和绘制影线的角度和间距,计算绘制影线的范围和影线的数量;
计算影线与轮廓边的相交位置;
对已经求出的位于同一影线的交点进行排序,以确定影线的分段情况,用于连线绘图。

随便去找本什么C精解百例,什么想要的都会有。拿回家慢慢看。