6 月 19 作业题任务是用等距离的扫描线扫描下不规则多边形,如例图所示,获得扫描区
间,并画出结果。
B 是多边形顶点坐标
B=[0 1 2 3 6 7 9 10 9 8 7 5 4 3 2 1;
5 2 3 0 0 1 5 6 13 13 15 15 14 15 11 10]
Ymin=0,Ymax=15,需要 n=100 个扫描间隔,那么扫描距离就 0.15,101 条扫描线。
上面这部分编程肯定是没问题,接下就是模型的难点:
1、如何求扫描线与间隔的交点;
2、如果扫描线刚好扫描到多边形的顶点,要如何处理;
3、如果扫描线刚好扫描到多边形的边,要如何处理;
步骤:
1、从第一条扫描线开始扫描,扫描线为 yi
2、从多边形的第一个点开始,取第一个点 n1, n1 的上一个点 n0,n1 的下一个点
n2,n2 的下一个点 n3。那么 n1-n2 就表示当前多边形的边,n0-n1 表示前一条边,n2-
n3 表示后一条边,等下需要用到。
3、判断扫描线 yi 与 n1-n2 是否有交点,有就求交点,没有就回到步骤 2,取下一个点
n1;