Sutherland–Hodgman算法

✍ dations ◷ 2025-09-08 20:32:36 #计算机图形学,算法

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

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

相关

  • Db5f14 6d3 7s2(预测)2, 8, 18, 32, 32, 11, 2 (预测)主条目:
  • 裂殖子顶复门物种的生命周期包括以下各个阶段:作为一组细胞内寄生虫,顶复门的生命周期阶段让它们透过演化去适应它们所暴露于的各种复杂的环境下生存。簇虫亚纲的身细胞内都有营养体
  • 中子发射中子发射是原子排除多余中子的一种放射性衰变的形式,只是很单纯的将中子从核中抛出。同位素氦-5和铍-13是中子发射的两个例子,但是氦-5的衰变也可以是α衰变(由定义看)。许多重
  • 珍·亚瑟珍·亚瑟(英语:Jean Arthur,1900年10月17日-1991年6月19日)是一名美国女演员,从她20世纪20年代拍摄无声片一直到1953年拍摄最后一部影片为止她一共拍摄了接近100部电影。在无声片
  • 林秀贞林秀贞(1946年-),河北枣强人,中国农民企业家,中国共产党党员。林秀贞多年来义务赡养六位孤寡老人,资助贫困学生上学,救治收养患病弃婴,资助残疾农民就业。2006年被评为“感动中国”十
  • 衡南高速公路衡南高速公路指湖南省衡阳市境内南岳区至石鼓区间高速路段,为衡阳市区连接南岳衡山风景区的快速通道。公路全长50.9公里,其中主线长37.1公里,连接线长13.8公里。主线按双向四车
  • 段落段落(英语: paragraph)简称段,是文章中最基本的单位。从内容上说,它具有一个相对完整的意思。在文章中,段与段通常会隔一行。段是由句子或句群组成的,在文章中用于体现作者的思路
  • 小港站 (捷运)小港站是高雄捷运红线的一座捷运车站,位于高雄市小港区沿海一路及汉民路口。当地古代属店仔后庄下的落堀聚落,南侧为店仔后聚落,西北侧为二苓聚落,东北侧今小港区新市区古代为荒
  • 二硫代草酰胺二硫代草酰胺是一种有机化合物。化学式为C2H4N2S2。有文献报道其分解温度为140 °C,也有文献指出其分解温度为170 °C二硫代草酰胺可由草酰胺和劳森试剂在无水乙腈反应得到。
  • 拉德克·切尼拉德克·切尼(捷克语:Radek Černý,1974年2月18日-),出生于捷克斯洛伐克布拉格,是一名捷克足球运动员,司职门将。1993年,17岁的切尼在家乡俱乐部布拉格斯拉维亚展开其足球生涯。他的