如何根据 wxMaxima 中的运动方程创建路径的 3D 图?

How to create a 3D plot of a path from equations of motion in wxMaxima?

我有以下点的运动方程:

x(t):=r*cos(t^2)$
y(t):=r*sin(t^2)$
z(t):=b*t$

我已经计算了速度和加速度,但现在我想为这些数据绘制一条 3D 路径:

r:5;
b:2;

它应该看起来像一种螺旋。

我尝试了各种命令来创建此 3D 图,但其中 none 行得通。我在 wxMaxima 中找到的所有 3D 图示例都是曲面,而在这种情况下,我想创建一条曲线。这个软件可以吗?

以下是两次失败的尝试:

wxplot3d([x(t), y(t), z(t)], [t, 0, 45]);
wxplot3d([parametric, x(t), y(t), z(t), [t, 0, 45]]);

更新: 下面的命令有效,但由于某种原因该图不正确(我将其作为图片附上)。是因为这些函数的特性吗?我需要一些额外的输入吗?

wxdraw3d(parametric (x(t), y(t), z(t), t, 0, 45));

更新 2: 我尝试了以下命令:

wxdraw3d(nticks = 10, parametric (x(t), y(t), z(t), t, 0, 45));

情节看起来更好(只有 nticks=10):

但这仍然不是我所期望的。这是波兰书中描述 MathCAD 在力学中的使用的参考图(所以我不能直接使用那里提供的代码):

也许问题出在这本书的作者使用了一些技巧(“辅助变量缩放函数的参数”)来获得情节。但我认为它只在 MathCAD 中是必需的。虽然我可能是错的...

如果您知道如何在 Maxima 中定义范围变量,我可以尝试在 Maxima 中复制书中的方法。

更新 3: 这是书中使用 MathCAD 获得该图的方法:

定义缩放函数参数的辅助变量:

M:=1000
K:=0,1.. 45

时域由以下公式给出:

t_k:=k*sqrt(π/M)

定义绘图函数为:

X_k:=r*cos(((k^2)/M)*π)
Y_k:=r*sin(((k^2)/M)*π)
Z_k:=b*k

这是我将其翻译成 Maxima 的尝试:

M:1000$
assume(k >= 0, k <= 45);
t_k:k*sqrt(%pi/M);
X_k(t_k):=r*cos(((k^2)/M)*%pi);
Y_k(t_k):=r*sin(((k^2)/M)*%pi);
Z_k(t_k):=b*k;
wxdraw3d(nticks = 10, parametric (X_k(t_k), Y_k(t_k), Z_k(t_k), t_k, 0, 45));

不幸的是,我收到以下错误:

draw3d (parametric): non defined variable

这可能是因为 k 的定义方式。这样的范围变量可以在 Maxima 中以不同的方式定义吗?

我已经修改了您展示的代码,经过一些修改似乎可以正常工作。

r:5;
b:2;
M:1000$
X(k):=r*cos(((k^2)/M)*%pi);
Y(k):=r*sin(((k^2)/M)*%pi);
Z(k):=b*k;
draw3d(nticks = 1000, parametric (X(k), Y(k), Z(k), k, 0, 45));

主要变化是 MathCAD 代码中的 foo_k := ... 在 Maxima 中被翻译为 foo(k) := ...,并且绘图变量是 k(构造为变化更慢比 t) 而不是 tt(k).

我还增加了很多 nticks,并删除了 t_k 的提及,因为它现在不在画面中。

顺便说一句,我想如果你在 wxMaxima 中说 draw3d,它会启动一个外部查看器而不是在笔记本中嵌入图像(我认为是 wxdraw2d)。我认为,您可以用鼠标拖动以在外部查看器中旋转绘图。这对 3-d 图很有帮助。我可能弄错了如何启动查看器,因为我不太使用 wxMaxima。