1

ベクトルに垂直な平面をプロットし、Matlab で点を通過したいと考えています。ベクトルには座標がv1 = [2,i]あり、ポイントには座標がありcom_m1 = [1,i]ます。

私は両方を試しました:

xx=(-15:-6:0.25);
yy=(-10:-2:0.25);
for i = 1:length(xx)
    for j = 1:length(yy)
            zz_m1(j,i)=(v1(2,2)*(xx(i) - com1(1,1)) + v1(2,2)*(yy(j)-com1(1,2)))/v1(2,3) + com1(1,3);
    end
end
surf(xx,yy,zz_m1, 'FaceColor','red','EdgeColor','none') % Plotting the surface

[xx, yy]=meshgrid(-15:-6:0.25,-10:-1:0.25);
zz_m1=(v1(2,2)*(xx - com1(1,1)) + v1(2,2)*(yy-com1(1,2)))/v1(2,3) + com1(1,3);
surf(xx,yy,zz_m1, 'FaceColor','red','EdgeColor','none')

しかし、どちらもうまくいきませんでした。私が間違っていることを誰かが理解するのを手伝ってくれますか? ありがとう!

4

1 に答える 1

1

コードにいくつかの問題があります。最大のものはこの行です。 から始まりまで続くxx=(-15:-6:0.25);ベクトルを求めると、空の行列が生成されます。-15-Inf

間違いを理解していない場合は、おそらくコロン記法のドキュメントを読む必要があります。 行列yyに と同じ問題がありxxます。

さらに、飛行機の計算が間違っていると思います。v1ランダムに生成されたandを使用してローカルでコードを試しcom1ましたが、線は平面に対して垂直ではありません。

以下は、点を通過し、既知のベクトルに垂直な平面の方程式を計算する方法の優れた説明です: http://msemac.redwoods.edu/~darnold/math50c/matlab/planes/index.xhtml ( A Plane is a Surfaceまで下にスクロールします)

于 2012-08-29T15:05:36.340 に答える