我想重现下面的图像,但另外标有“轴距 $w$”和“轮距 $t$”。
(维基百科图片来源)
我已经尽力了pst-solides3d
,但结果却更糟糕(而且我现在甚至没有尝试写文字):
(来源在这里)
似乎没有任何可能用 TikZ 来实现这一点(参见例如这个问题- 我不想考虑如何仅使用 2D 图形来创建 3D 模型)。
我想知道一种方便的方法来创建描述几何情况的 3D 图像。因此,我需要基本的几何对象(圆柱体、长方体、球体、圆锥体)、一种简单的方法来更改视点、箭头、可以放置在 3D 中的文本(如第一幅图所示)以及(如果可能)一种像在 LaTeX 中一样写入变量的方法。
我考虑过使用 Blender 或 POV-Ray,但两者似乎都相当复杂,当我遇到困难时,我不知道从哪里开始/问问题。我也不知道如何像在 LaTeX 中那样编写变量。
我的问题
您是否知道如何使用其他pst-solides3d
LaTeX 包或任何其他 LaTeX 包获得与第一幅图像类似的结果?
如果没有,你知道 Blender / POV-Ray 或任何其他软件是否
- 能够创建 3D 模型(它们被称为线框模型吗?),
- 免费(不一定是开源的,但我更喜欢它),
- 适用于Linux,
- 能够创建 PDF / SVG / TEX 文件,
- 有良好的文档记录,
- 一个论坛(最好是 StackExchange 网站),当我不知道如何继续时可以在那里提问?
答案1
看一下渐近线. 它对 3D 图形非常强大,并且可以嵌入到 Latex 中。
\documentclass{standalone}
\usepackage{asymptote}
\begin{document}
\begin{asy}[width=10cm,height=10cm]
import solids;
import labelpath3;
// Set page size
size(0,150);
// Lighting
currentlight=Viewport;
real wi = 4;
real le = 4;
material m = material(grey, yellow, black, orange);
triple[] wheels = {(-le/2,-wi/2,0),
(-le/2,wi/2,0),
(le/2,-wi/2,0),
(le/2,wi/2,0) };
// lines
draw((-le/2,wi/2,0)--(-le/2,wi,0));
draw((le/2,wi/2,0)--(le/2,wi,0));
// wheels
for(triple p : wheels) {
draw(shift(p)*rotate(90,(1,0,0))*
scale(1,1,0.2)*shift((0,0,-0.5))*unitcylinder,m);
draw(shift(p)*rotate(90,(1,0,0))*
shift((0,0,-0.1))*unitdisk,m);
draw(shift(p)*rotate(90,(1,0,0))*
shift((0,0,0.1))*unitdisk,m);
}
// axes
draw(shift(-le/2,0,0)*rotate(90,(1,0,0))*
scale(0.1,0.1,wi)*shift((0,0,-0.5))*unitcylinder,m);
draw(shift(le/2,0,0)*rotate(90,(1,0,0))*
scale(0.1,0.1,wi)*shift((0,0,-0.5))*unitcylinder,m);
// box
draw(scale(5,1,1)*shift(-0.5,-0.5,-0.5)*unitcube,m);
draw((-le/2,0.9*wi,0)--(le/2,0.9*wi,0),Arrows3);
draw(scale(0.8,1,1)*labelpath("wheelbase $w$",(le/2,wi,0)--(-le/2,wi,0)));
\end{asy}
\end{document}
结果如下: