簡體   English   中英

在多邊形周圍創建Delaunay三角剖分

[英]Creating a Delaunay Triangulation around Polygons

可以根據一組點在python中創建Delaunay三角剖分 ,但是如何對一組多邊形執行相同的操作? 例如,在圖片中,我想讓正方形成為一種“障礙”,並圍繞該正方形生成三角剖分。 如果可能的話,我也想知道每個三角形的中心點是什么。

在此處輸入圖片說明

首先進行完整的三角剖分,然后再刪除不需要的邊緣,該如何做。 例如:

  1. 計算包含所有點的約束Delaunay三角剖分
  2. 確定您的“排除”多邊形的邊界
  3. 刪除連接排除多邊形中任意兩個點但不屬於邊界本身的任何邊

假設您仍然需要三角剖分中的排除多邊形的邊界。 同樣,這可能不再是Delaunay三角剖分,而僅僅是多邊形網格。

至於每個多邊形的中心,一旦有了三角剖分,就可以使用質心進行計算。

要求。 通常這是不可能的。

證明 如果您的一組點中沒有四個點是共圓的,則Delaunay三角剖分是唯一的。 因此,只要障礙物多邊形至少包含一個非Delaunay邊,您就將無法獲得該點集的唯一Delaunay三角剖分。 這是很容易看到的:像在翻轉算法中一樣,考慮一般位置的四邊形,其對角線需要翻轉為Delaunay。 現在,讓一個壞三角形成為障礙,並將四邊形的四個頂點的集合作為點的集合。 那么顯然,您永遠不會到達Delaunay三角剖分。

更新:您描述的問題是約束Delaunay三角剖分問題的特例。 在您的情況下,約束邊緣僅是障礙物邊界的邊緣。 有許多可以執行此操作的python庫。 例如

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM