|
判断多边形内坐标 | | | |
多边形顶点数组 | 坐标_小数 | | | | 原坐标 | 坐标_小数 | | | | 返回坐标 | 坐标_小数 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | i | 整数型 | | | j | 整数型 | | | 起始点 | 坐标_小数 | | | 结束点 | 坐标_小数 | | | 交点X | 双精度小数型 | | | 交点数 | 整数型 | | 0 | 判断1 | 逻辑型 | | | 判断2 | 逻辑型 | | | i1 | 整数型 | | | 需要返回的坐标 | 坐标_小数 | | 0 | i2 | 整数型 | | |
j = 取数组成员数 (多边形顶点数组 )重定义数组 (交点数, 假, 取数组成员数 (原坐标 )) 计次循环首 (j, i ) 如果 (j ≠ i )  起始点 = 多边形顶点数组 [i ]  结束点 = 多边形顶点数组 [i + 1 ]  起始点 = 多边形顶点数组 [i ]  结束点 = 多边形顶点数组 [1 ] 计次循环首 (取数组成员数 (原坐标 ), i1 ) 判断1 = 起始点.y > 原坐标 [i1 ].y  判断2 = 结束点.y > 原坐标 [i1 ].y  如果真 (判断1 ≠ 判断2 )  交点X = (结束点.x - 起始点.x ) (原坐标 [i1 ].y - 起始点.y ) ÷ (结束点.y - 起始点.y ) + 起始点.x   如果真 (原坐标 [i1 ].x < 交点X )   交点数 [i1 ] = 交点数 [i1 ] + 1      处理事件 ()  计次循环尾 ()处理事件 () 计次循环尾 () 计次循环首 (取数组成员数 (原坐标 ), i2 ) 如果真 (交点数 [i2 ] % 2 ≠ 0 ) 加入成员 (需要返回的坐标, 原坐标 [i2 ]) 处理事件 () 计次循环尾 ()返回坐标 = 需要返回的坐标
|