首页/技术分享

3DMAX教程 | 3ds Max怎么画电磁波?电磁波的3ds Max画法

发布于:2024-09-30 12:57:57
15人 分享

文章源自公众号:3D科研绘图

作者:图灵


在你眼中3ds Max也许只是个绘图软件,但在小编看来,这是一款很好用的数字图像化软件。只要我愿意,它可以化身Excel,化身Origin,甚至实现MATLAB的作图功能。这一切只因为她——MAXScript(max脚本语言)。

脚本编辑给了像我这类软件使用者极大的创作空间。颜色有RGB值,反射折射比有菲涅尔公式,全局光照还有蒙特卡洛算法,这个世界归根到底是可以数字化的,凭什么就非得按照一款软件自身设定的逻辑来描绘我脑海中的图像?

所以,请丢掉3ds Max绘图太随意,数理性不强的刻板偏见,今天的教程就教大家一波新操作:用max绘制一个标准的正弦波。

在3ds Max中,你可以轻轻松松画出一个圆、一段弧,甚至一条螺旋线,但函数图像千千万,如果要你画抛物线、双曲线呢?作为一个资深软件玩家,如果回答说不会,是不是有点尴尬?

那么,化解尴尬的第一步,我们先得知道Maxscript是怎么创建样条线的。

新建脚本,输入下列语句:

b = splineshape()

addnewspline b

addknot b 1 #corner #line [0,0,0]

addknot b 1 #corner #line [10,0,0]

shape b

运行之后,你会在视图中看到生成了一条线段,端点分别是(0,0,0)和(10,0,0)。这就是以上代码的含义,先生成一个样条线图形,然后给这个图形设置端点,最后连线。

7c66a806331e1050135aea9c8f841383.png

有了这个基础,创建正弦曲线就再简单不过了,y = sin x嘛,谁不知道?所以只要加一个for循环,正弦曲线就有了。

n = 120

for i = 1 to n do

(

b = splineshape()

        addnewspline b

        addknot b 1 #corner #line [2*pi*(i-1)/n,sin(360*(i-1)/n),0]

        addknot b 1 #corner #line [2*pi*i/n,sin(360*i/n),0]

        shape b

        b.wirecolor = red

)

得到的曲线如图所示

034077020c7c64e7423cee2b1fec3348.png

这条正弦曲线是由n条小线段组成的,创建成功后可以附加到一起,选择任一段,点击附加多个,全选其他线段后附加。一条正弦曲线就画完了。

fe6348369a93a389b07e3044ce5325fb.jpg

除了正弦曲线外,可能有些同学还要画一些箭头表示波的强度,方法还是一样,只要把for循环中两个顶点坐标改成如下所示就好了:

addknot b 1 #corner #line [2*pi*i/n,0,0]

addknot b 1 #corner #line [2*pi*i/n,sin(360*i/n),0]

运行后得到的图形如下,如果觉得太密,可以把n值设小一点。

c64fc9cd654491341bfaa44b16844292.png

比如n = 12,开启样条线渲染可见,径向厚度设为0.03时,运行如下语句:

aab26c2bf3e9b96eb4c6ffb6b65356df.jpg

这里的箭头是用圆锥体创建的,一句完整的创建脚本为:

c = Cone smooth:on heightsegs:1 capsegs:1 sides:24 height:0.18 radius1:0.065 radius2:0.01 mapcoords:on pos:[2*pi*i/n, sin(360*i/n)-0.18, 0] wirecolor:blue

这些参数就是在创建圆锥体时会用到的参数,唯一要注意的就是坐标应随着x增大呈正弦曲线变化。

运行得到结果如下,π和2π处的两个圆锥箭头是多余的,可以删除。

adba99981f53ee3f08ae537e358911cd.jpg

y方向的振幅乘以一个倍数系数就可以自由调节:

769bd51cac3da3a528c1b7c8968f8f3b.jpg

另一个垂直方向的波则可以通过改变for循环中的坐标值,或者整体旋转90度来得到:

a7dd99790d4ab703159fca112f8cac32.jpg

至此,一个电磁波的三维空间示意图就画完了。有了正弦函数的绘制基础,其他函数还不是手到擒来?大家拿其他方程去尝试吧。

本期教程到此结束,感谢大家的观看。

转载请注明来源本文地址:https://www.tuituisoft/blog/18306.html

上一篇:

3DMAX教程 | 3ds Max怎么画编织物?卷轴状的碳布编织物3ds Max画法

下一篇:

Navisworks教程 | 如何解决Navisworks模型导入时的位置偏移问题