我正在尝试自学3D图形,但我无法想象所涉及的3D矢量。
我可以使用任何好的软件来显示3D矢量吗?
例如,现在我正在学习相机变换,如果我可以轻松地绘制右/上/外观/眼睛矢量,那就太好了。
我已经尝试过Grapher.app和gnuplot,但是很难在Grapher.app中输入点数,而gnuplot似乎无法锁定纵横比。
答案 0 :(得分:9)
Visual Python是一个非常简单的3D可视化库。
例如,要显示球体和箭头:
import time, math, visual
ball = visual.sphere(pos=(0,2,0), radius=1, color=visual.color.red)
vect = visual.arrow(pos=(2,0,0), axis=(2 ,2,-2))
visual.scene.forward = (.1, -.3, -1) # controls the camera view angle
此窗口现在还具有所有正常鼠标交互功能,例如缩放和相机(即视角)旋转。
VPython也很容易制作动画。例如,以下内容将旋转箭头:
da = 2*math.pi/100
for timestep in range(100):
angle = timestep*da
vect.axis = (2+2*math.sin(angle), 2*math.cos(angle), -2)
time.sleep(.1)
答案 1 :(得分:2)
我不知道这是否比Grapher.app或gnuplot更容易,但您可以编写自己的3D图形程序,只绘制矢量。
Here's an example in OpenGL绘制X,Y和Z轴向量。
更新: Here's a Java applet专门用于帮助您在摄像机转换中可视化矢量。请注意安装说明:您必须安装Java 3D。
描述:透视相机 参数applet旨在熟悉 学生用各种参数 与合成的, 透视投影相机。用户 可以调整以下任何一项 参数:视野宽度, 视野高度,近剪裁 平面距离,远剪裁平面 距离,向上矢量和外观矢量。 视锥体在a中可视化 窗口,允许学生 了解参数的相关性 到视锥体的形状。
同一网站有many components, such as axes,您可以使用它设置一个简单的小程序,只显示您想要的向量。