0

次の方法で、その下で切り取られた双曲線の 3D 図形をプロットしたいと思います (図)

何か案は?ここに画像の説明を入力

4

1 に答える 1

1

OK、これがあなたの問題への私の刺し傷です。これは私が使ってきた実験的なスクリプトです:

%%# first part    
%#------------------

clf

%# use cylinder to get unit cone
[x,y,z] = cylinder( linspace(1, 0, 1e3), 1e3);

%# intersect the cone with this surface
inds = z < (cos(x).*sin(pi*y/2)+1)/4;

x(inds) = NaN; %# remove all corresponding 
y(inds) = NaN; %# indices, in all arrays
z(inds) = NaN;

%# Now plot the cone. Note that edges are ugly when 
%# using a large number of points
surf(x, y, z, 'edgecolor', 'none');

%%# second part
%#------------------

hold on

%# the surface to intersect the cone with
f = @(x,y) (cos(x).*sin(pi*y/2)+1)/4;

%# add the surfacfe to the cone plot
[x,y] = meshgrid( linspace(-1,1, 1e3) );
surf(x,y, f(x,y), 'edgecolor', 'none')

最初の部分は、曲線と交差する円錐を示しています。全体の形状を正しくするために、曲線を少しいじる必要があるかもしれません。これが 2 番目の部分の目的です。

放物面(またはその他)が必要な場合は、使用してください

[x,y] = meshgrid( linspace(-1,1, 1e3) );
z = 1-x.^2-y.^2;  %# or whatever other equation

cylinderコマンドの代わりに。

于 2012-09-18T06:54:52.850 に答える