如何实现 3D 场景的两个轴与 2D 投影的 x 和 y 轴重合的透视?

如何实现 3D 场景的两个轴与 2D 投影的 x 和 y 轴重合的透视?

轴草图

对应的摄像头线应该是怎样的?

currentprojection = orthographic(camera=(x,y,z),up=Y,target=O);

具体来说,我需要一个根据 x 轴和 y 轴之间的角度计算三元组 (x,y,z) 的公式。

答案1

你想要的是所谓的“斜”投影。正如这里解释的那样http://en.wikipedia.org/wiki/Oblique_projection

您需要使用currentprojection=oblique;来实现这种投影

画廊中前两个例子:

http://asymptote.sourceforge.net/gallery/planes.asy

http://asymptote.sourceforge.net/gallery/.cache/planes.png

现在代码:

import three;
import graph3;
currentprojection=obliqueX(-45); // angle in degrees for the third axis (e.g. 25)
size(5cm);
xaxis3("$x$",0,1,black);
yaxis3("$y$",0,1,black);
zaxis3("$z$",0,1,black);
viewportsize=(345.0pt,0);

斜轴

(顺便说一句,我无法使角度参数的符号obliqueZobliqueX使“x”轴坚持左上方向。)

为了说明这一点不是可以通过其他投影得到这个结果,

...
currentprojection=orthographic(4,6,3);
...

正氧基

相关内容