首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建厚陀螺体

创建厚陀螺体
EN

Stack Overflow用户
提问于 2017-10-09 11:49:42
回答 1查看 870关注 0票数 2

我想给一个陀螺仪函数的厚度是

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2019-06-27 06:11:38

我正在研究一个类似的问题。我参考了维基百科上的陀螺仪公式,我有一段代码可以创建一个3D打印的.stl文件。

下面的代码只是计算单个单位从-pi到+pi的陀螺线,它用值t计算,其中v-t=0是一个曲面,v+t = 0是另一个曲面,当第一个或第二个曲面为0时,通过将这两个曲面相乘得到0值,因此,通过在0处执行等值面计算,您可以得到这两个曲面中的任何一个。等值线适用于每个低于0的值,从而填充两个曲面之间的边界上的曲面。

我是在八度音阶上做的,但我认为这段代码应该在matlab上运行。

代码语言:javascript
复制
[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");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46638586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档