C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 20 を表示中)
■8077 / )  Re[15]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ れい (133回)-(2007/09/21(Fri) 23:32:50)
なんかこの質問と相性がよくないようです。
緊急の用事が入ってしばらくみれませんでした。

No7978 (セイン さん) に返信
> 3点の合計が一番大きな点をピックアップするようにすれば、法線に必要な3点を取ってくることができ

これは言葉を間違っていると思います。

「点」はベクトル量です。
ベクトルの足し算は一般に定義されていますので、合計も定義されています。
大きさも、絶対値として、一般に定義されています。

言葉を字面どおり解釈すると、
3つの座標の、ベクトル量としての和の、各成分の2乗の、合計の、平方が最大になるような3点を選ぶ、
という意味になります。

これは、点の始点に依存する量になり、
私には何を求めているのか全くわかりません。

各成分の和が最大になるような点の前後合わせて3点なら意味が通じます。

No8014 (y4yama さん) に返信
> へこを含む時に、「3点の合計が一番大きな点」では、全くNG!ですヨ!

そのとおり。
上で述べたように、「3点の合計が一番大きな点」では何もわかりません。
ですが、
「各成分の和が最大になるような点の前後合わせて3点」なら、
y4yamaさんの言うベクトル列でも大丈夫です。
なぜなら、「各成分の和」は1次関数でかけ、x+y+zであるからです。

行列演算、ベクトル演算はプログラムと非常に相性がよく、頻繁に出てきます。
プログラマに必要な数学知識は何かと訊かれたら、
私は線型代数を最初にあげます。
必要だと思いますよ。

No7974 (Tom Yama さん) に返信
> P.S. ところで、
>>2) 外積を用いた符号付面積による方法
> 2次元の場合は、これでも計算できるのですが、
> 3次元の場合でも、使える方法なんでしょうか?

ポリゴンが3角形なら自明ですよね。2辺の外積で求まります。
ポリゴンが多角形の場合、3角形に分割して計算するのが基本です。
ある1点を決め、そこから多の全ての点に線を引き、ポリゴンを分割します。
最近の分割線2つで外積を求め、それらを全てベクトル量として合成すれば、
法線と面積がでます。
多点が同一平面に無いときは、平均の法線になってしまい、
最初の1点に依存する量が出てしまいます。
これは分割線の外積が平行であるかを確認すれば対応できるので、
同時に全ての点が同一平面にあるか無いかの確認もできます。

また、3次元の場合は3ベクトルの外積で平行6面体の体積が求まります。
4次元以上の場合、外積の定義により、いろいろ計算できます。
返信 編集キー/


管理者用

- Child Tree -