Sutherland–Hodgman算法

✍ dations ◷ 2025-11-12 04:14:35 #计算机图形学,算法

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

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

相关

  • 离域电子离域电子(英语:delocalized electron),也称游离电子,是在分子、离子或固体金属中不止与单一原子或单一共价键有关系的电子。 游离电子包含在分子轨道中,延伸到几个相邻的原子。一
  • 软焊软钎焊、软焊(英语:soldering)是一种利用熔化熔点较低金属来连结其他金属工件的制造过程。被熔化的金属一般称为焊料,一般其熔点低于摄氏400度。软钎焊和硬钎焊的差异是在于焊料
  • 贝鲁特坐标:33°53′13″N 35°30′47″E / 33.88694°N 35.51306°E / 33.88694; 35.51306贝鲁特(阿拉伯语:بيروت‎,转写:Bayrūt;亚美尼亚语:Պէյրութ,转写:Peyrut 希腊语:Βη
  • 台北市 (消歧义)台北市可以指下列行政区:
  • 彭佳屿彭佳屿,又名草莱屿、大峙山屿,当地渔民也称之为大屿,是台湾附属岛屿之一,也是台湾北方三岛中唯一有派员驻在的岛屿,行政上隶属于中华民国基隆市中正区管辖。彭佳屿距离台湾北部基
  • 东门街道东门街道是中国广东省深圳市罗湖区下辖的一个街道,地处罗湖区中心位置。总面积2.1平方公里。总人口10余万人,其中常住人口4.3万,暂住人口5.5万。东门街道是深圳市最早的街道办
  • 备用轮胎备用轮胎,简称备胎,是机动车上闲置以供备用的轮胎。在轿车、商用车中,一般装在车身底部。在越野车、运动休旅车中则一般装在车的正后方。早期的一些车辆将备胎装于车身侧边或引
  • 阮氏玉琼平兴公主阮氏玉琼(越南语:Bình Hưng công chúa Nguyễn Thị Ngọc Quỳnh/.mw-parser-output .han-nom{font-family:"Nom Na Tong","Han-Nom Gothic","Han-Nom Ming","HAN
  • 贾英华贾英华(1952年-),中国作家,晚清研究学者,中国作家协会全国委员会委员、中国传记文学学会副会长、中国电力作家协会主席。代表作为《末代皇帝的后半生》,此书日文版是风糜日本的畅销
  • 中美海缆中美海缆(英语:China-US Cable Network,简称:CUCN)是连接亚太地区多国的海底电缆。由23个电信机构共同出资建造,于1997年12月开工建设,其中的北线于1999年12月初全部建成,并于2000年