
No.1ベストアンサー
- 回答日時:
3点をA(a1,a2,a3),B(b1,b2,b3),C(c1,c2,c3)とします.
ベクトルAB,ベクトルAC,ベクトルBCを算出します.
そうすると三角形ができます.
あとは知りたい角をθと置いて,余弦定理を使ってcosθを求めます.
求まったcosθの値からθを求めましょう.
ふむふむ、余弦定理を用いるのがキモなのですね。
(ベクトルABというのは、AB間の距離、と解釈しています)
なんとかそれなりの値(?)を出すことができました。ありがとうございました。
後から参照する方のために、Perl のサブルーチンの形で載せておきます。合ってるかどうかわかりませんが、参考までに。
sub get_angle {
#
my $len_a = (
($point_a->{x} - $point_b->{x}) ** 2
+ ($point_a->{y} - $point_b->{y}) ** 2
+ ($point_a->{z} - $point_b->{z}) ** 2
) ** (1/2);
my $len_c = (
($point_c->{x} - $point_b->{x}) ** 2
+ ($point_c->{y} - $point_b->{y}) ** 2
+ ($point_c->{z} - $point_b->{z}) ** 2
) ** (1/2);
my $len_b = (
($point_a->{x} - $point_c->{x}) ** 2
+ ($point_a->{y} - $point_c->{y}) ** 2
+ ($point_a->{z} - $point_c->{z}) ** 2
) ** (1/2);
my $cos_b = eval { ( $len_a ** 2 + $len_c ** 2 - $len_b **2 ) / ( 2 * $len_a * $len_c ) };
use Math::Trig;
my $rad = acos $cos_b;
my $deg = rad2deg $rad;
return $deg;
}
No.2
- 回答日時:
ちょっと、質問が漠然としていて分かりにくいのですが……。
No.1のgraduated Studentさんのやり方でも良いのですが、もっといい方法があります。A点、B点、C点を結ぶと三角形が出来ますね。それで、
たとえば角Aが知りたいとき、ベクトルAB(これをA→Bと表す)とベクトルAC(これをA→Cと表す)を求める。
(このやり方は、わかりますよね?)で、それぞれの大きさを求める。(このやり方もわかりますよね?それぞれXYZ座標を二乗し、たして、ルートを取ればいいのですよ。)それを掛け合わせたものを(分母)とします。それで、つぎは、A→BとA→Cの内積を取ればよい。(このやり方もわかりますよね?それぞれXYZ 座標を掛け合わせて足せばいいのですよ。)その値を(分子)とします。そうすると、(分子)/(分母)が
その角度のCOSθとなるのです。そこから求めましょう。あとの角度は、やり方はまったく同じ。
二次方程式の解の公式のような、値を入れれば一発で……、というものは存在しません。気合を込めて求めましょう。
ベクトルAB、というのは二点間の距離、と解釈してよろしいでしょうか? 内積・・遠い昔に習ったような、習わなかったような気がします(笑 最終的にはプログラムの形にしたかったので、単純なスカラー値?だけで求まる(であろう)余弦定理を使わせて頂きました。こういった解法もあるということで、参考にさせて頂きます。ご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
3次元空間上の2つの座標から角度を求めたい
その他(プログラミング・Web制作)
-
空間座標の角度の求め方
数学
-
二点の座標から角度を求めるには?
数学
-
4
3次元の回転角度の求め方について教えてください。
数学
-
5
三次元の座標の回転をExcelで計算したい。回転行列?
Excel(エクセル)
-
6
3次元座標2点からの直線式の求め方
数学
-
7
3点の緯度経度(XY座標)の角度
その他(ソフトウェア)
-
8
空間上の3点の角度をエクセルで。
数学
-
9
座標を入力すると角度を得られるような方法
Excel(エクセル)
-
10
エクセルでθを求めたい。
Excel(エクセル)
-
11
3次元座標を原点中心に回転したい
数学
-
12
X軸方向の角度とY軸方向の角度の合成
数学
-
13
3次元空間で3点を通る平面を2次元座標で表すには
数学
-
14
曲率の求め方
数学
-
15
3次元の平面上の点かどうかを判定したい
数学
-
16
ベクトルをロールピッチヨーに変換する方法
数学
-
17
回転した座標軸と一致させるための回転軸と角度の算出
数学
-
18
距離と方向角から座標を求める方法を教えて下さい。
数学
-
19
角度からベクトルに変換するにはどうしたら良いでしょうか。例えばX方向にx°、Y方向にy°、Z方向にz
計算機科学
-
20
python エラー
その他(プログラミング・Web制作)
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
正規直交基底であることの確認
-
5
「ノルム、絶対値、長さ」の違...
-
6
球面と直線の交点
-
7
基底であることを示す問題
-
8
線積分、面積分とは何?
-
9
微積分の記号δ、d、Δ、∂の違い
-
10
座標系の奥(手前)方向の書き方
-
11
一次独立だけど、基底にならな...
-
12
一本のベクトルに直交するベク...
-
13
初等幾何
-
14
一次従属の問題
-
15
行列ノルムの不等式
-
16
「任意」ってどういう意味?
-
17
複素数平面でのベクトルの扱い...
-
18
三次元空間の3点のなす角度
-
19
grad(A・B)について
-
20
面積分の問題です。
おすすめ情報
公式facebook
公式twitter