张曙亮

博客园 首页 联系 订阅 管理

核心类: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

下载源代码:

https://files.cnblogs.com/boitboy/SimplePath.rar

posted on 2013-03-17 21:23  张曙亮  阅读(844)  评论(0编辑  收藏  举报