Sutherland–Hodgman算法

✍ dations ◷ 2025-11-28 22:15:33 #计算机图形学,算法

Sutherland–Hodgman算法是裁剪多边形的算法。它通过轮流延长每个凸多边形的边,并且只选择在可见一侧的顶点来完成任务。

该算法从目标多边形中所有顶点的输入列表开始。接下来,剪裁多边形的一条边在两个方向上无限延伸,同时遍历目标多边形的边。如果输入列表中的顶点位于扩展的剪裁多边形线的可见侧,则它们会插入到输出列表中,并且目标多边形与剪裁多边形的延长后的边相交的顶点会添加到输出列表。

使用一个阶段的输出列表作为下一个阶段的输入列表,对每个剪辑多边形侧重复进行此过程。剪裁多边形的所有边都经过处理后,最终生成的顶点列表将定义一个完全可见的新单个多边形。请注意,如果目标多边形在剪裁多边形外部的顶点处凹入 ,则新多边形可能具有重叠的边缘——这对于渲染是可接受的,但不适用于其他应用程序,例如计算阴影。

给定一个剪裁多边形的一组边,和一个目标多边形的顶点列表,下面的过程将目标多边形根据剪裁多边形进行剪裁。

   List outputList = subjectPolygon;        for (Edge clipEdge in clipPolygon) do      List inputList = outputList;      outputList.clear();          for(int i = 0 ; i < inputList.count ; i += 1) do         Point current_point = inputList;         Point prev_point = inputList;             Point Intersecting_point = ComputeIntersection(prev_point, current_point, clipEdge)             if (current_point inside clipEdge) then            if (prev_point not inside clipEdge) then               outputList.add(Intersecting_point);            end if            outputList.add(current_point);                  else if (prev_point inside clipEdge) then            outputList.add(Intersecting_point);         end if          done   done

当算法终止时,将在找到裁剪后多边形的顶点。请注意,如果它位于该边缘作为多边形的剩余部分的相同侧上的点被定义为边缘 。如果剪裁多边形的顶点始终沿逆时针方向列出,那么这等效于测试该点是否位于直线的左侧(left表示 ,right表示 ),这可以通过简单地使用叉积 实现。

是一个函数,为清楚起见在此省略了该函数,它返回线段和无限边的交点。请注意,仅在已知存在这种相交的情况下才调用它,因此可以简单地将两条线都视为无限长。

相关

  • 希伯登氏结节希伯登氏结节(英语:Heberden's nodes)是指远端指关节(英语:Interphalangeal articulations of hand)(最靠近手指和脚趾末端的关节,DIP)出现的硬的或骨性肿胀。 它是骨关节炎的体征,是
  • 330110 数学 120 信息科学与系统科学 130 力学 140 物理学 150 化学 160 天文学 170 地球科学 180 生物学210 农学 220 林学 230 畜牧、兽医科学 240 水产学310 
  • 堂妹堂亲是指跟自己父亲有血缘关系的同姓氏男性亲人及其姻亲和后代;粗略地来说,如果不考虑改姓、随母姓等特殊情况,除了父母及两人的直系后代之外,来自父亲一方同姓的血亲(父亲兄弟及
  • 印第安人迁移政策印第安人迁移政策是美国政府19世纪的一个政策,该政策把密西西比河以东的印第安人强制迁移到密西西比河以西。受影响的印第安人民族包括文明化五部族的奇克索人、切罗基人、乔
  • 塞米迪群岛塞米迪群岛是美国的群岛,位于科迪亚克岛西南的阿拉斯加湾,由9座岛屿组成,行政方面由阿拉斯加州科的阿克岛自治市镇负责管辖,总土地面积30.18平方公里,群岛上无人居住。坐标:56°03
  • 弗雷德里克堡弗雷德里克斯堡(英语:Fredericksburg)是美国德州基利斯比县中部的一座城市,2005年的人口为10,432。是基利斯比县政府所在地。弗雷德里克斯堡位于北纬30°16′,东经98°52′(30.274
  • 巴塞罗那国际研究学院巴塞罗那国际研究学院(加泰罗尼亚语:Institut Barcelona d'Estudis Internacionals, IBEI)是一所位于巴塞罗那的大学校际研究机构和研究生教学中心。该学院在2004年由5所巴塞罗
  • 2004年乌克兰总统选举列昂尼德·库奇马 无党籍尤先科 无党籍2004年乌克兰总统选举于2004年10月31日举行。如果无人得到过半数选票就将会于11月21日举行第二轮投票。本次选举是乌克兰在1991年从前
  • 珍妮佛·贝尔珍妮佛·贝尔(英语:Jennifer Beals,1963年12月19日-),美国演员。为欧非混血,父亲是黑人,母亲是爱尔兰裔白人,父亲在她10岁时去世,她在青少年时期曾为模特儿,后参与演出1983年电影《闪舞
  • 万州青龙瀑布坐标:30°39′49″N 108°15′02″E / 30.66361°N 108.25056°E / 30.66361; 108.25056青龙瀑布,位于重庆市万州区境内,瀑布宽115米,高64.5米,瀑布面积7417.5平方米,是重庆市万州