您当前的位置: 首页 > 

龚建波

暂无认证

  • 4浏览

    0关注

    312博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

平面多边形凹凸判断(叉乘法)

龚建波 发布时间:2021-11-19 00:30:33 ,浏览量:4

参照《计算机图形学》一书中的描述,多边形(polygon)是由三个及以上的顶面坐标位置描述的平面图形,这些顶点由多边形的边顺序连接。多边形的一个内角由两个相邻边形成的边界之内的角。如果所有内角均小于180度则称为凸(convex)多边形,否则为凹(concave)多边形。

百度多边形凹凸的判断,主要方法有:凸包法、叉乘法(大于和小于180度的符号相反)、辛普森面积法。这里主要学习下叉乘的运用,并配上 C++ Qt 示例代码。

判断方法:为每一条边建立一个向量,使用相邻边的叉积来测试凹凸性。凸多边形的所有相邻边向量叉积同号。如果出现一些正一些负则为凹多边形。

(网上找的图,可以 ABC 分别看作 xyz。食指指向 x ,手心朝向 y 轴,大拇指向上的方向恰好是 z 的方向)

示例:

void Widget::paintEvent(QPaintEvent *)
{
    //顶点,第一个为凸,第二个为凹
    /*QVector points = QVector()
                
关注
打赏
1655829268
查看更多评论
0.0876s