[求助]计算机图形学
救我啊,一个变态老师要我们下个星期3交作业,是计算机图形学的作业,要用C语言实现,不能调用已有的函数,算法都要自己编程实现。题目是:实验一 任意封闭多边形内影线填充算法及其软件实现 在各种设计图纸中常常用画有影线的区域来表示零件的剖切断面,设计任意封闭多边形区域的填充算法,并编写计算机程序
提示:(1)影线的计算
影线为直线,并且斜率k=tgα已知,因此直线方程可表示为:
y=kx+bb为影线在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)范围之内,则说明影线与该轮廓边不相交,则顺次取下一条边。否则,转下一步求交运算。交点坐标为(3) 交点排序并绘制影线 将原始交点按x坐标递增顺序排序,然后按奇偶规则连线,绘出分段影线。(4) 奇异点处理当角点处的两条轮廓边位于影线的两侧时,应该算一个交点。当角点处的两条轮廓边位于影线的同侧时,最好不计交点,或者算两个交点。
有 谁可以帮我啊 ,哪怕是一点点也可以,让我可以交差啊