サーフェスをスライスしたいプレーンの法線ベクトルが常にxy平面内にある場合、サーフェス上のスライスラインにあるx、y座標に沿ってデータを補間できます。たとえば、
% Create Data
z=peaks(50);
% Create x,y coordinates of the data
[x,y]=meshgrid(1:50);
% Plot Data and the slicing plane
surf(z);
hold on
patch([0,0,50,50],[15,15,35,35],[10,-10,-10,10],'w','FaceAlpha',0.7);
% Plot an arbitrary origin axis for the slicing plane, this will be relevant later
plot3([0,0],[15,15],[-10,10],'r','linewidth',3);
(50,35)面がポイント・ツー・ポイント(0,15)から行くように定義させ、それは平面であるので、Xを得ることは比較的容易であり、Yスライシング面の座標をlinspace
に合わせると、100点を得て、100点を元のデータに補間します。今、私たちは、zの値を持っていることを
% Create x and y over the slicing plane
xq=linspace(0,50,100);
yq=linspace(15,35,100);
% Interpolate over the surface
zq=interp2(x,y,z,xq,yq);
は、私たちは、私が(0,15)で鉱山を定義し、あなたのスプライシング面のための任意の原点軸を定義する必要がある場所それはだ、に対してそれらをプロットするために何に対して必要次に、この軸に対するすべてのx、yペアの距離を計算し、得られたzをこの距離に対してプロットすることができます。
dq=sqrt((xq-0).^2 + (yq-15).^2);
plot(dq,zq)
axis([min(dq),max(dq),-10,10]) % to mantain a good perspective
質問のカップル。あなたの定義された平面はz軸に平行か、それとも3自由度の回転が可能ですか?そして、出力グラフでx軸をどのように定義しますか? –
@NoelSegura私は法線ベクトルが常にxy平面にある切断平面に興味があります。つまり、x、yの任意の方向にカットするが、常に垂直になるプレーンです。 – ConfusinglyCuriousTheThird