Sutherland–Hodgman算法

✍ dations ◷ 2025-11-28 16:12:05 #计算机图形学,算法

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

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

相关

  • 脊索脊索(英语:notochord),是条不仅长而韧的而且在背部中起支持体轴作用的棒状结构,是脊柱的前身。脊索具有弹性,能弯曲,不分节;位于消化道背面和背神经管腹面之间,来源于脊索动物的胚胎
  • 野兽派野兽派(法语:Les Fauves)是20世纪率先崛起的象征主义画派,画风强烈、用色大胆鲜艳,将印象派的色彩理论与梵高、高更等后印象派的大胆涂色技法推向极致,不再讲究透视和明暗、放弃传
  • 餐叉在当代,叉子是日常西洋食具,辅助用者将食物带到口中,亦可在烹饪或切割食物时抓住食物,免得食物移动。叉子一端让人握著,另一端有二至多条分支,用来插入或盛住食物。一般来说,叉子为
  • 邵武话邵武话是汉语族闽语支邵将语中的一种方言,也是邵将语的代表方言,通行于福建省南平的邵武市一带。邵武话是带有非常多赣语的特点,兼具闽北语的特色。邵武话之下又分为城关话、洪
  • 横岗横岗街道是中国广东省深圳市龙岗区下辖的一个街道。于2004年由原来之横岗镇演变而来。2016年12月26日,原横岗街道一分为二,分置横岗和园山两个街道。横岗街道位于龙岗区中部,辖
  • 1823电话中心1823电话中心现行服务的政府部门有23个:自2010年起1823开始拓展网上服务,首先在年初推出 1823 Online 网站,提供该中心收到的常见查询及答案。其后在2011年4月推出“Tell me@18
  • 关诗敏关诗敏(Sharon Kwan,1995年10月12日-),美籍华人,台湾著名华语流行音乐女歌手,2011年6月参加第一届《华人星光大道》,于2012年1月8日总决赛获得冠军,创下星光史上最年轻的总冠军纪录。
  • 亚瑟·巴赫《二八佳人花公子》(Arthur )是1981年美国的一部喜剧电影,编剧和导演是斯蒂夫·戈登。主演是达德利·摩尔与丽莎明妮莉。这部电影是1981年美国票房第四高的电影,并且赢得了这一
  • 亡兵纪念日阵亡将士纪念日(英语:Memorial Day,是美国联邦法定节日,原名纪念日,或悼念日,又译国殇纪念日)是美国的一个纪念日,每年5月的最后一个星期一悼念在各战争中阵亡的美军官兵。全国悼念
  • 肿瘤坏死因子-α1A8M, 1TNF, 2AZ5, 2E7A, 2TUN, 2ZJC, 2ZPX, 3ALQ, 3IT8, 3L9J, 4TSV, 5TSW· cytokine activity · tumor necrosis factor receptor binding · protein binding · id