我想给一个陀螺仪函数的厚度是
Gyroid=(cos(x) .* sin(y) + cos(y) .* sin(z) + cos(z) .* sin(x));
% Reverse Gyroid
R=sqrt( (-sin(x).*sin(y)+cos(x).*cos(z)).^2+(-
sin(y).*sin(z)+cos(y).*cos(x)).^2+(-sin(z).*sin(x)+cos(z).*cos(y)).^2 );
ReverseGyroid=(Gyroid.*T./R);
isosurface(Gyroid)
isosurface(ReverseGyroid)目前我得到了两个表面。我想用等值线来缩小差距。current outcome
这是我期望的输出,但作为一个等值面定义,而不是通过对两个曲面分别使用等值面。desired outcome should be like this
发布于 2019-06-27 06:11:38
我正在研究一个类似的问题。我参考了维基百科上的陀螺仪公式,我有一段代码可以创建一个3D打印的.stl文件。
下面的代码只是计算单个单位从-pi到+pi的陀螺线,它用值t计算,其中v-t=0是一个曲面,v+t = 0是另一个曲面,当第一个或第二个曲面为0时,通过将这两个曲面相乘得到0值,因此,通过在0处执行等值面计算,您可以得到这两个曲面中的任何一个。等值线适用于每个低于0的值,从而填充两个曲面之间的边界上的曲面。
我是在八度音阶上做的,但我认为这段代码应该在matlab上运行。
[x, y, z] = meshgrid (-pi:pi/16:pi);
v = sin(x).*cos(y)+sin(y).*cos(z)+sin(z).*cos(x); %gyroid formula
t=0.15; % offset from isovalue, affects thickness
v=(v-t).*(v+t); %multiplies one negative offset gyroid and one positive offset gyroid
figure(1)
isosurface (x, y, z, v, 0);
hold on
figure(1)
isocaps(x,y,z,v,0,"below");https://stackoverflow.com/questions/46638586
复制相似问题