Sutherland–Hodgman算法

✍ dations ◷ 2025-11-27 01:35:23 #计算机图形学,算法

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表示 ),这可以通过简单地使用叉积 实现。

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

相关

  • 肌肉系统肌肉系统(英语:Muscular System) 指身体的所有肌肉组织, 包括骨骼肌, 平滑肌和心肌,它参与动作的产生, 维持姿势及产生热量。
  • Buerger病血栓闭塞性脉管炎(Thromboangiitis obliterans,TAO),又称为Buerger病(Buerger's disease)是一种以中小动静脉节段性、非化脓性炎症和动脉腔内血栓形成为特征的慢性进行性闭塞性疾
  • 社会系统理论社会系统理论(sociotechnical systems theory)是一个在现代社会科学方面的理论,与行政学、社会结构及组织行为学相关。它的概念来自机械和电气工程,透过研究中比较普遍的社会
  • 夏多布里昂弗朗索瓦-勒内·德·夏多布里昂(法语:François-René de Chateaubriand,1768年9月4日-1848年7月4日)是法国十八至十九世纪的作家,政治家,外交家,法兰西学院院士。出生于法国布列塔
  • 南清舰队南清舰队(なんしんかんたい)是日俄战争之后1905年(明治38年)12月组建的日本海军舰队之一。成立于日俄战争结束后,有鉴于日本人在中国大陆特别是长江沿岸地区的扩张,为了保护日本人
  • 曹娥江曹娥江古称柯水,又名上虞江、东小江、孝女江等,上游段又称剡溪,位于中国大陆浙江省东部,为钱塘江第二大支流,也是钱塘江下游最大支流,全长192千米,宽100-600米,流域面积5922平方千米
  • 中州中州可以指:
  • 钟音钟音(?-1778年),是中国清朝官员,觉尔察氏,字闻轩,满洲镶蓝旗人。雍正十三年乙卯科举人,乾隆元年(1736年)中联捷进士,散馆授检讨。乾隆十七年(1752年)授陕西巡抚,旋调福建,后任广东巡抚。
  • 刚林刚林(-1651年),字公茂,瓜尔佳氏,满洲正黄旗人。清初官员。世居苏完(今吉林双阳河流域),本隶正蓝旗,属郡王阿达礼。担任笔帖式,精通汉文、满语,并能翻译。天聪八年,中举。崇德元年(1636年),授
  • 亚太旅行协会亚太旅行协会(Pacific Asia Travel Association, PATA)是1952年于美国夏威夷创立的一个非营利组织,其宗旨为促进在亚太地区的观光事业发展,为亚太地区最重要的国际观光组织之一,