enter image description here 2つの平面間の交差角度を見つけるためには、各平面に垂直な法線ベクトルの内積を使用し、角度の余弦を与えることが十分に文書化されています。私はこれをプログラムしようとしましたが、場合によっては計算結果が交差点の角度ではなく補助点になることに気付きました。ここ は、以下の2つのサンプルコードである。この示して:第1の例では、正しい角度(45度)を算出するが、第2の例では、(補足を算出すること2つの平面間の角度を正しく取得するにはどうすればよいですか?
x = linspace(-10,10, 12);
y1 = -(0.5*x) + 1.333;
plot(x, y1); hold on
%2nd line
xd = 5;
plot(xd, x, 'o')
%vectors and normal vectors
n1 = [0.5, 1]; v1 = [1, -0.5];
n2 = [-5, 0]; v2 = [0, 5];
angle = (acos(dot(v1, v2)/(norm(v1) * norm(v2))) * 180/pi)
注
x = linspace(-10,20, 12)
y1 = (0*x) + 9
y2 = -x + 19
figure
k = plotyy(x,y1, x,y2);
set(k(2),'YDir','reverse')
%vectors and normal vectors
n1 = [0, 1];
v1 = [1, 0];
n2 = [1, 1];
v2 = [1, -1];
angle = (acos(dot(v1, v2)/(norm(v1) * norm(v2))) * 180/pi)
秒116.5651度)。これを打破しようとした後、ある法線が正の向きを指し、他の法線が負の向きを指していると認識しました(図A参照)。次に、angle = 180 - (acos(ドットn1、n2)/(ノルム(v1)ノルム(v2))))* 180/pi。しかし、n1とn2の両方を図のように同じ方向(正または負)に向ける場合は、 * 180/pi
私はこれをいくつかの例でテストしましたが、私はこの慣習を確信しています。(慣例では、すべての場合に機能します。私はまた、これがいくつかの多くの人々にとって役に立つと確信しています。それにもかかわらず、私の悩ましい問題はこれをどのようにプログラムするかです。どんなアドバイス/助言/提案も非常に高く評価されます。ありがとう!
と同一線上に作るために
v1
を回転させるために必要な角度を与えるあなたは、出力を与えることができます予想される出力に対して? –