C++博客-天空留不下飞鸟的痕迹,但我已飞过-随笔分类-图形学简单算法http://www.cppblog.com/birdofwonder/category/15552.htmlzh-cnWed, 01 Dec 2010 13:31:04 GMTWed, 01 Dec 2010 13:31:04 GMT601 任意不自相交的凹多边形实现三角剖分http://www.cppblog.com/birdofwonder/archive/2009/05/18/83319.htmlBirdOfWonderBirdOfWonderMon, 18 May 2009 14:31:00 GMThttp://www.cppblog.com/birdofwonder/archive/2009/05/18/83319.htmlhttp://www.cppblog.com/birdofwonder/comments/83319.htmlhttp://www.cppblog.com/birdofwonder/archive/2009/05/18/83319.html#Feedback0http://www.cppblog.com/birdofwonder/comments/commentRss/83319.htmlhttp://www.cppblog.com/birdofwonder/services/trackbacks/83319.html输入:凹多边形的顶点序列p1、p2、、、、pn;
输出:剖分形成的三角集合
剖分方法:
        1) 从顶点p1开始,判断连续的三点p1p2p3组成的三角形是否为逆时针,若是则将三角型p1p2p3添加到三角型集合中,在顶点序列链表中去掉顶点p2,然后判断连续的三点p1p3p4是否构成逆时针三角形;若p1p2p3组成三角形为顺时针,则从p2点开始重复步骤1)继续处理顶点序列,相邻三点组成逆时针三角形,则从顶点序列中去掉中间点,并将该三角形添加到三角形集合中。
 注:判断三角形ABC是否为逆时针,只需判定向量AC角度是否大于向量AB 或根据三角形面积是否为正判断。三角形面积为正,三角形为逆时针,否则为顺时针。
计算三角形面积公式:s = 0.5*   | x1  y1  1  |

                                                        |x2  y2  1  |

                                                        |x3  y3  1  |

A(x1,y1) B(x2,y2) C(x3,y3) 



BirdOfWonder 2009-05-18 22:31 发表评论
]]>