私は問題があります。 、contoursliceを使用して等値面境界を取得していますか?
[rho1,rho2,beta] = meshgrid(linspace(pi,0,100),linspace(0,pi,100),linspace(0,pi/2,100));
data = sin(rho1).*sin(rho2) + sin(beta).^3 + cos(2.*beta).*sin(beta).*cos(rho2) + sin(beta).^3.*cos(rho1).*cos(rho2).^2 + cos(2.*beta).*sin(beta).*cos(rho1).*cos(rho2) - cos(beta).^2.*sin(beta).*cos(rho1) + sin(beta).*cos(rho1).*sin(rho2).^2 + 2.*cos(beta).^2.*sin(rho1).*sin(rho2) + cos(beta).^2.*sin(beta).*cos(rho2).^2 + 2.*sin(beta).^2.*cos(rho2).*sin(rho1).*sin(rho2);
fv = isosurface(rho1,rho2,beta,data,0);
p = patch(fv);
isonormals(rho1,rho2,beta,data,p)
p.FaceColor = 'red';
p.EdgeColor = 'none';
daspect([1,1,1])
view(3); axis tight
camlight
lighting gouraud
私は3Dで、プロットしようとしています:私は現在、私はそうと等値面を使用してこのデータを取得した3次元の複雑な三角関数fを記述表面(rho1、rho2、ベータ)= 0のデータを持っていますこの表面のいくつかの「スライス」。現在、私はcontoursliceを使用しています。私はこの機能が私の表面の容積表示に基づいて輪郭を補間することを理解する。輪郭線をボリュームの境界線に正確に(または数値的に可能な限り)近づけたいと思います。現在、私はこれを持っています:
hold on
s = contourslice(rho1, rho2, beta, data, [], [], [pi/4], 1, 'nearest');
view(3);
grid on;
これは、 "最も近い"補間方法を使ってpi/4で1つのzスライスです。これは私が欲しいものを私に与えません。
任意の助けを大幅に高く評価され...
this image shows how the contour does not match my surface