- ベストアンサー
多角形の中心点の座標の求め方
どう求めればいいのでしょうか? 5角形以上の場合です。 頂点の座標は全て分かっています。 よろしくお願いいたします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
#6 です.訂正&補足します. まず,#6 の Yg の式は符号が逆でした.m(_ _)m つまり, Yg = (1 / (6 * S)) * Σ(i=1,n) (Yi^2 + Yi * Y(i+1) + Y(i+1)^2) * (Xi - X(i+1)). それから Xg,Yg の式は,次のようにもう少し簡単になります. Xg = (1 / (6 * S)) * Σ(i=1,n) (Xi + X(i+1)) * (Xi * Y(i+1) - X(i+1) * Yi). Yg = (1 / (6 * S)) * Σ(i=1,n) (Yi + Y(i+1)) * (Xi * Y(i+1) - X(i+1) * Yi). テストプログラムを作って計算してみました.実行結果を次に示します. (1次モーメントとあるのは,Xg * S および Yg * S のことです.) ●正三角形 P[1]:(0, 0) P[2]:(1, 0) P[3]:(0.5, 0.866025) 面積:0.433013 1次モーメント:(0.216506, 0.125) 重心:(0.5, 0.288675) ●正方形 (#5 さんの例) P[1]:(10, 10) P[2]:(-10, 10) P[3]:(-10, -10) P[4]:(10, -10) 面積:400 1次モーメント:(0, 0) 重心:(0, 0) ●十角形 (同じく #5 さんの例) P[1]:(10, 10) P[2]:(9, 10.1) P[3]:(8, 10.2) P[4]:(7, 10.3) P[5]:(-7, 10.3) P[6]:(-8, 10.2) P[7]:(-9, 10.1) P[8]:(-10, 10) P[9]:(-10, -10) P[10]:(10, -10) 面積:405.1 1次モーメント:(0, 51.72) 重心:(0, 0.127672)
その他の回答 (6)
- noocyte
- ベストアンサー率58% (171/291)
一般の多角形の重心の公式を導いてみました. 多角形の頂点を Pi=(Xi,Yi) (i=1,…,n) とし,また P(n+1)=P1 と定義すると, ・多角形の向き付き面積 (頂点列が左回り順ならば+,右回り順ならば-) S = (1/2)Σ(i=1,n) (Xi * Y(i+1) - X(i+1) * Yi). ・重心のX座標 Xg = (1 / (6 * S)) * Σ(i=1,n) (Xi^2 + Xi * X(i+1) + X(i+1)^2) * (Y(i+1) - Yi). ・重心のY座標 Yg = (1 / (6 * S)) * Σ(i=1,n) (Yi^2 + Yi * Y(i+1) + Y(i+1)^2) * (X(i+1) - Xi). 一応,検算として,n=3 の場合によく知られた三角形の重心の公式 Xg = (X1 + X2 + X3) / 3 Yg = (Y1 + Y2 + Y3) / 3 になることは確認したつもりです. どなたか,具体例に当てはめてチェックしていただけるとありがたいです. (私は公式を導くだけで疲れました.orz) 証明はちょっと面倒で,ベクトル解析の知識が必要です. (知識のない方は読み飛ばしてください.) 長くなるので概要だけ示します. まず,一般の図形の図心 (密度一定の場合の重心) の定義は次のように, 図形内部の面積分で定義される. Xg = ∫X dS / ∫dS. Yg = ∫Y dS / ∫dS. 上の2つの式の分母はもちろん図形の面積で, ∫dS = ∫Y dX (積分路は右回り) = -∫Y dX (積分路は左回り) で求められる.(図を描いてみればすぐにわかります.) 多角形の場合には最初に示したSの式になる. 分子の計算は厄介.分母の場合と同様に,面積分を図形の境界上の線積分に変換するが, ストークスの定理を用いるため,Z軸を付け加えて3次元で考える. 図形はもちろんXY平面上にあるので,その単位法線ベクトルNは (0, 0, 1). rot A = (0, 0, X) となるようなベクトルAを考えると,ストークスの定理により ∫X dS = ∫(rot A)・N dS = ∫ A・dL (dL = (dx, dy, dz)) A=(0, X^2/2, 0) とすると rot A=(0, 0, X) なので ∫X dS = ∫ (X^2/2) dy. これを多角形の場合について計算すると,上記の Xg の式になる.Yg も同様. 重心 (Wikipedia) http://ja.wikipedia.org/wiki/%E9%87%8D%E5%BF%83 ストークスの定理 (Wikipedia) http://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%88%E3%83%BC%E3%82%AF%E3%82%B9%E3%81%AE%E5%AE%9A%E7%90%86
- Quattro99
- ベストアンサー率32% (1034/3212)
#3さんのようになるのかと思ったのですが、 (10,10)、(-10,10)、(-10,-10)、(10,-10)を頂点とする正方形の重心は(0,0)ですが、(9,10.1)、(8,10.2)、(7,10.3)、(-7,10.3)、(-8,10.2)、(-9,10.1)を加えた10角形の座標を平均して出した点は(0,6.12)となり、重心とは思えません。
- Quattro99
- ベストアンサー率32% (1034/3212)
4角形の場合、二つの3角形に分けてそれぞれの重心を求めると、その2点を結ぶ線分に4角形の重心があるので、もう一組の分け方で分けた場合の線分との交点が重心になります。 5角形の場合、3角形と4角形に分けてそれぞれの重心を求めると(4角形は上記の方法による)、その2点を結ぶ線分上に重心があるので、別の分け方で同じことをして交点を求めればよい。 6角形は... のようになり、かなり面倒なことになるのではないかと思います。
頂点座標が全部わかってるなら、重心は簡単です。 x座標、y座標とも平均値をとればいいのです。 x=(全部の点のx座標の和)/(頂点の数) y=(全部の点のy座標の和)/(頂点の数)
- rom_exe
- ベストアンサー率44% (13/29)
重心ですか.なるほど. ちなみに多角形は密度一定の剛体ですよね.これは難しい・・・ 明解な回答を思いつかなかったですので,詭弁を(笑) 多角形を複数の三角形に分割し,各三角形の重心を計算してから更にその重心を求めるという方法でどうでしょう? ^^
- rom_exe
- ベストアンサー率44% (13/29)
こんにちは ^^ うーん,難しいですね.中心点という言葉がなにを指しているのかがわかりません・・・. 例えば,三角形や四角形の場合,中心点はどのようにして求められるものなのですか?
補足
中心点という書き方がおかしかったですね 重心のことです