2013-11-26 33 views
2

我想要通過特定偏移量(A)縮小以匹配原始多邊形的某個面積比(R)的2D多邊形。 是否有這樣一個問題的公式或算法?我對三角形/四邊形的簡單解決方案感興趣,但也是複雜多邊形的解決方案。通過偏移將多邊形收縮到特定區域

我附上了一張圖片以供解釋。原始多邊形偏移A(每邊相等)。必須選擇A,以便新多邊形具有特定區域。在這個例子中,它應該具有初始多邊形面積的一半。

enter image description here

回答

0

你提的問題是非常特異性的,但在這裏是做你所尋找的一種方式,假設我理解你的要求。請注意,這可能會導致不必要的位置偏移,您將不得不以某種方式處理。不知道你想要縮放多邊形的點是什麼,這些解決方案假定最簡單的情況。

所有這些公式中的平方根的原因是,面積隨着線性縮放的平方而變化,就像體積對線性縮放的立方體所做的一樣。

對於一般的多邊形:

A = sqrt(R) 
for each point in polygon: 
    point.x := point.x * A 
    point.y := point.y * A 

對於圈子:

A = sqrt(R) 
circle.radius := circle.radius * A 

對於矩形在寬度和高度方面:

A = sqrt(R) 
rect.w := rect.w * A 
rect.h := rect.h * A 
+0

感謝您的答覆。我附加了一張更具體的圖片。 – timkado

+1

您在該圖片中顯示的問題有點難以解決,因爲某些多邊形最終可能會被分割爲兩個或多個單獨的形狀。讓我稍微思考一下。 –