計算不規則多邊形的中心 重心 (js 實現)

2021-09-12 08:15:28 字數 664 閱讀 2579

在專案中經常會遇到這樣乙個問題:在不規則多邊形的中心點加乙個圖示。

之前的設計是,計算不規則多邊形範圍矩形bounds的中心點。這個比較簡單,對於一些圓,矩形,凸多邊形都比較適合。但是遇到凹多邊形就會出現問題,比如乙個月牙型的不規則多邊形,bounds的中心點,就落到月牙外了。就有點難以接受了。

這個問題之前困擾我很久,今天突然看到乙個名詞:」重心「 

問題瞬間迎刃而解!!特此記錄一下

首先獲得多邊形的所有rings (無數個點)

1、求中心:

arcgis js 方法:

xx.geometry.getextent().getcenter();

2、求重心:

var points =xx.geometry.rings[0];

var point =getpolygonareacenter(points );

function getpolygonareacenter(points) 

var xx = sum_x / sum_area / 3;

var yy = sum_y / sum_area / 3;

return new point(xx, yy,new spatialreference());

}function area(p0,p1,p2)

計算幾何 多邊形的重心

1.1 累加和求重心 設平面上有n 個離散資料點 xi yi i 1,2,n 其 多邊形重心g x1,y1 為 這是求多邊形最簡單直觀的方法。可以直接利用離散數 據點的x,y座標就能求圖形重心。但是缺陷在於沒有對離散 資料點所圍圖形做任何處理和分析,精度不夠。1.2 演算法一 在講該演算法時,先要明...

POJ 3855 計算幾何 多邊形重心

思路 多邊形面積 任選乙個點,把多邊形拆成三角,叉積一下 三角形重心 x1 x2 x3 3,y1 y2 y3 3 多邊形重心公式題目中有,套一下就好了 計算多邊形重心方法 1 劃分多邊形為三角形 以多邊形的乙個頂點v為源點 v可取輸入的第乙個頂點 作鏈結v與所有非相鄰頂點的線段,即將原n邊形或分為 ...

MFC 給不規則的多邊形閉合區域填充顏色

問題描述 現有多個由線段line匯成的閉合區域,將每個區域使用不同的顏色填充。實現的完整 繪製圖形 find the client area crect rect getclientrect rect draw with a thick blue pen cpen penblue ps solid,...