我需要帮助来理解渐近线中的正交投影。
currentprojection=orthographic(x,y,z);
指定x
和,就可以在 3D 中旋转图形,但我如何确定这些数字呢y
?z
答案1
x
、y
和的变化z
不会旋转3d
物体,而是会改变相机位置。一个简单的程序可以帮助设置投影参数:
首先设置2d
图片的大小,例如
size(200);
接下来,导入一些支持的模块3d
:
import three;
从相机位置的一些值开始,想象这是盒子的一个角,您可以从这里观察原点。
currentprojection=orthographic(2,2,2);
放置一个简单的对象来开始,例如在原点的一个单位坐标线:
draw(O--(1,0,0),red);
draw(O--(0,1,0),green);
draw(O--(0,0,1),blue);
现在,您可以运行此sample.asy
文件:
size(200);
import three;
currentprojection=orthographic(2,2,2);
triple O=(0,0,0);
dot(O);
label("$O$",(0,0,0),N);
draw(O--(1,0,0),red);
draw(O--(0,1,0),green);
draw(O--(0,0,1),blue);
使用asy -V sample.asy > ocamera.asy
。交互式查看器将允许您根据需要更改视点,然后right-double-click
将出现一个菜单。单击Camera
,当前相机设置将保存在ocamera.asy
文件中,如下所示:
currentprojection=orthographic(
camera=(0.961388410434579,3.28630597183905,-0.564352559252),
up=(0.000558361334852193,0.00103708683243738,0.00699025170673149),
target=(7.76288755499621e-17,7.76288755499621e-17,7.76288755499621e-17),
zoom=0.505067952995518);
可以将其复制到 sample.asy 中并进行编辑,例如像这样:
currentprojection=orthographic(
camera=(1,3.3,-0.5),
up=(0,0,1),
target=(0,0,0),
zoom=0.5);
这将为您提供一个起点。