Sutherland–Hodgman算法

✍ dations ◷ 2025-11-29 13:49:46 #计算机图形学,算法

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

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

相关

  • 运动医学运动医学(英文:Sports Medicine)为医学的一个分支,为复健医学的一个次专科,范畴为研究体适能、防止及处理与运动及体能锻炼相关的创伤。20世纪后期,运动医学才从医疗卫生中分门别
  • 神经化学神经化学,是致力于神经化合物研究的神经科学分支。神经化合物是神经系统活动中的一个有机分子。这规定经常使用提到神经传送体和其它分子譬如影响神经元作用的神经活跃药物。
  • 铍中毒铍中毒(英语:Beryllium poisoning)是铍引起的中毒,分为急性铍中毒(英语:Acute beryllium poisoning)和慢性铍中毒(英语:Berylliosis)。后者主要表现为肺部病变,故又称铍肺,也有人称其为
  • 印度-伊朗语族印度-伊朗语族(英语:Indo-Iranian languages,或Indo-Iranic languages),又称雅利安语族(英语:Aryan languages)是印欧语系今日仍在使用的语言中最东方的一族,下分为印度-雅利安语支、
  • 开放两岸探亲开放两岸探亲是1987年11月2日,时任中华民国总统蒋经国有感于台海两岸之间的亲人分离太久,决定让凡在中国大陆有三亲等内血亲、姻亲或配偶的民众登记赴大陆探亲。在开放两岸探
  • 干扰理论在心理学中,记忆(主要为长期记忆)由于有相同的提示(cue),因此在提取(retrieval)记忆时,记忆彼此互相抑制,形成遗忘(forgetting)现象。抑制可分为两种:顺摄抑制(proactive inhibitio
  • 格雷默斯机场格雷默斯机场(英语:Greymouth Airport;IATA代码:GMN;ICAO代码:NZGM)是一座位于新西兰西岸大区格雷茅斯的一座机场,其主要民航业务为新西兰国内线。
  • 同差素同差素(英语:isodiaphers)在原子核物理学与放射化学中指原子序数不同但中子数与质子数之差相同的一类核素。例如234 90Th和238 92U,它们的中子数()与质子数()之差都是 − = 54
  • 草莓属(见内文)草莓属(学名:)为蔷薇目蔷薇科之一属,又可详细归类于蔷薇亚科委陵菜族草莓亚族。同科者尚有棣棠花属( DC.)、悬钩子属( L.)等等。人们平常所认为的可食用草莓果实并不是由子房
  • 邵伟华邵伟华(1936年12月-2019年5月23日),湖北省鄂州市人,邵雍第二十九世孙,《周易》研究者、堪舆学家。被称为中国当代的“易学泰斗”。1987年起分别出席了国际和全国的《周易》学术研