平面2次元のn角形の頂点のデータがあります。n点の座標ですから(x,y)がn個並んでいます。そのような図形の図心(重心)の座標を計算するアルゴリズムがないでしょうか。最終的にはプログラムとして離散的な処理をするため、1%ぐらいの誤差は許容範囲です。n角形と言ってもせいぜいn=3,4,5,6程度です。
欲を言うと、3次元も考えており、平面に含まれることが分かっているn個の点(3次元空間内)を平面の2次元空間に変換して重心を求め、それを3次元空間に引き戻せば3次元での重心となります。そのためにも2次元での重心の座標を求めるアルゴリズムが必要なのです。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
n角形の頂点を、辺を一周する順に番号付けて P[k], k = 0,1,2,…,n-1 とします。
図形を分割すると、重心は、分割された各部品の重心を、各部品の面積で加重平均
したものになりますから、同じ平面内に点 Q をとって、
△QP[k]P[k+1], k = 0,1,2,…,n-1 (ただし P[n] は P[0] の別名とする)
の重心 (Q + P[k] + P[k+1]) / 3 を、△QP[k]P[k+1] の面積を重みとして
加重平均すればよいことになります。Q は、P[n-1] を採用してかまいません。
その際、△QP[k]P[k+1] がn角形の中にあるか外にあるかに従って、面積に正負を
付けて扱う必要があるため、面積 △QP[k]P[k+1] = (1/2)|↑QP[k]×↑QP[k+1]| の
替わりに、絶対値をつけない ↑QP[k]×↑QP[k+1] そのものを重みとして扱うほうが
便利でしょう。スカラーの計算で済ますために、n角形が乗っている面に平行でない
ベクトル V をひとつ固定して、↑QP[k]×↑QP[k+1]・V を重みにすれば、尚よい。
外積との内積だから、スカラー三重積ですね。平面の方程式が既知ならば、その
法線ベクトルが V として使えるし、そうでなければ、V = ↑QP[0]×↑QP[1] と
してもよいです。
以上まとめると…
Q = P[n-1] とする。
V = ↑QP[0]×↑QP[1] とする。
k = 0,1,2,…,n-3 の夫々について、
X[k] = (Q + P[k] + P[k+1]) / 3 と
w[k] = ↑QP[k]×↑QP[k+1]・V を求める。
重心は、(Σ w[k] X[k]) / (Σ w[k]) である。
← No.1
順序付けの自動化は、原理的に無理でしょう。
頂点の集合が同じでも、順序付けが異なると、n角形は別のものになる訳ですから。
回答有難うございます。
紙と鉛筆で外積と内積を計算したらすぐにプログラムが組めそうです。Qを多角形の構成点P[n-1]にするというのもなるほどと思います。アルゴリズム上Qは平面上のどの点でもよいことになると思いますが、物凄く遠方だったら精度は落ちていくでしょうから構成点付近にしておくというのは分かります。全構成点の単純平均でも良いかも知れません。
有難うございました。
No.3
- 回答日時:
公式を即席で作りました。
0=(0,0)
a=(a1,a2)
b=(b1,b2)
c=(c1,c2)
として
ベクトルa,b,cが時計と反対まわりとする。
三角形0,a,bの重心g(0,a,b)と面積S(0,a,b)
重心・・・g(0,a,b)=(a+b)/3
面積・・・S(0,a,b)=(a×b)/2=(a1*b2-a2*b1)/2
四角形0,a,b,cの重心は
(S(0,a,b)*g(0,a,b)+S(0,b,c)*g(0,b,c))/(S(0,a,b)+S(0,b,c))
n角形でも同じ
回答有難うございます。
基本は、n角形を頂点を1つ共有する3角形でn-2個に分割し、その各3角形の重心を面積の重み付き平均すればよいということですか。
また、重心の座標がg(0,a,b)=(a+b)/3という簡単な式に表示できるとは知りませんでした。中学校の数学で内心、外心などともに出てきたでしょうか。すっかり抜け落ちておりました。
No.1
- 回答日時:
一例です。
http://www5d.biglobe.ne.jp/~noocyte/Programming/ …
>多角形の面積,重心(図心),断面N次モーメントの公式 ......
頂点座標の順序付けをしておくと、あとの勘定が楽チンなのですね。
順序付けの「アルゴ」も探せばありそう ..... 。
このサイトは有用でした。有難うございます。
どこかにあるはずだとは思っていましたが。このようなプログラムって理論は簡単で実際にやってみるとややこしくて、加齢によるボケ封じにはもってこいなのですが、世界に1つだけあればいいプログラムですから、コツコツやるとイライラしてくるものですよね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 3次元実ベクトル空間において, 平面 P:x-y+z+1=0 と直線 L:2(x-1)=-y=-z 3 2022/10/29 14:39
- 数学 空間ベクトル(重心) 1,2,3/4,5,6/7,8,9 の座標空間上の三角形の重心が 4,5,6に 1 2023/04/09 20:04
- 中学校 中1数学 比例のグラフの座標の読み取り 4 2023/03/28 12:26
- 数学 2次関数y=ax^2のグラフは点A(4,2)を通っている。y軸上に点BをAB=OB(Oは原点)となる 1 2022/04/08 00:05
- 数学 線形代数の2次元直交座標系、極座標系についての問題がわからないです。 2 2022/07/16 20:42
- 数学 第4問 座標平面上に3点 A(1, 1),B(1, 5), C(7, 3) を頂点とするABCがある 2 2022/10/01 14:53
- 数学 ベクトル方程式(ヘッセの標準形)についての質問 2 2022/04/23 18:00
- 物理学 どうして、スピードを出しても3次元にいられるのですか。 3 2023/05/30 21:12
- 数学 数学の問題がわかりません。(球の中心の座標を求める問題) 2 2023/02/14 15:52
- 超常現象・オカルト パラレルワールドと 並行空間。 おなじ空間に別の空間。 アベンジャーズのような それぞれ 別の空間に 3 2023/01/21 12:55
このQ&Aを見た人はこんなQ&Aも見ています
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
イコール(=)と合同(≡)
-
三角形の中に接する半径の等し...
-
円を直線で切り取った部分の面...
-
周の長さの和がaで一定の凸n...
-
2つの重なった円の面積
-
「横倒しにした円柱容器に入っ...
-
半径5センチ、中心角135度の扇...
-
面積1平方キロメートルの場所
-
繊維の最密重点の問題です、ご...
-
常用対数の利用
-
蕎麦打ちの厚み計算の仕方
-
関数の積分で、積分区間の絶対...
-
数学における点とはなんですか...
-
わからないので教えてください...
-
顕微鏡について、 対物レンズの...
-
半円の中にある円の半径
-
重なり合う二つの円の面積
-
これ、何年生で習う内容でしょ...
-
mm3とμl
-
単位 ccとml
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
面積を表す文字になぜSをつかう...
-
イコール(=)と合同(≡)
-
面積1平方キロメートルの場所
-
2つの重なった円の面積
-
ヒステリシスループの面積の計...
-
円の途中で切った面積の出し方...
-
三角形の中に接する半径の等し...
-
「横倒しにした円柱容器に入っ...
-
五角形のABCDEの面積をエクセル...
-
円を直線で切り取った部分の面...
-
半径5センチ、中心角135度の扇...
-
面積1の正n角形(n>=3)の周の長...
-
2つの円が重なってできた図形の...
-
重なった円の面積
-
顕微鏡について、 対物レンズの...
-
πとπの足し算
-
なぜ積分で、上の式から下の式...
-
数学の問題 解けますか???
-
見かけの面積が実際の面積×cosθ...
-
えこれわかるひといますか?
おすすめ情報