核心类:GSimplePath
主要功能:
1:是否自相交
2:计算自相交的点
3:根据相交的点将其拆分成多条路径
4:计算路径的长度
5:反向路径
6:将两条路径连接起来
7:获取路径的范围
8:点是否在路径内部
9:路径是否在另一条路径内部
10:获取子路径
11:用一条线段将路径切开,分成两部分
12:计算面积和中心点
13:计算减去另外一个曲线后的结果
14:将另外一条路径和本路径的交点加入到当前路径中
15:将路径中的自相交点加入到路径中
16:移除小短线
17:填充三角化
辅助类:GLine,直线类
1:计算直线的两个点和另外一个点构成的三角形的面积
2:计算线段的标准方程
3:根据x求y
4:根据y求x
5:计算直线和直线之间的交点
示例程序效果
1:直线相交(绿色的十字叉标识出了相交的位置)
2:点是否在曲线内(蓝色的为曲线,红色的十字叉标识了在曲线外的点,绿色的十字叉标识了在曲线内的点)
3:曲线自相交(红色的曲线根据自相交的位置被才成了青色,白色,紫色,黄色四个子曲线)
4:曲线相减(蓝色和白色的曲线为原始出现,蓝色的曲线减去和白色部分相交的得到绿色的曲线,白色的部分减去和蓝色的相交的得到红色的部分)
5:填充三角化(左边的表示了一个填充区域,一个大的曲线里面被挖掉了两个小的曲线,右边显示的三角化后的填充区域,得到了三个曲线,和左边表示的填充区域是完全一样的,只不过挖掉了内曲线)
下载测试程序:
https://files.cnblogs.com/boitboy/SimplePathTest.rar
下载源代码: