你好,TeX Stackoverflow!
我对 Asymptote 中的 3D 绘图有一个疑问。我想绘制一条与两个平面相交的线的非常简单的 3D 草图,但很难让它看起来“逼真”:
这条线应该越过飞机的左边界,到达飞机的中心并穿过。然后这条线在飞机后面应该不可见,直到它经过对面的边界。另一架飞机也一样。
以下是生成上述图像的代码:
settings.outformat = "pdf";
settings.prc = false;
settings.render = 0;
size(7cm, 0);
import graph3;
import math;
currentlight=light(white,(2,2,2),(2,-2,-2));
//draw(O--X, blue);
//draw(O--Y, green);
//draw(O--Z, red);
triple UVO = X - Y / 2 - Z / 2;
triple XYO = -X - Y / 2 - Z / 2;
path3 planeUV = plane(O = UVO, Y, Z);
path3 planeXY = plane(O = XYO, Y, Z);
triple rayStart = 2X;//(2, -0.5, 0.5);
triple rayEnd = -rayStart;
path3 ray = rayStart -- rayEnd;
material m_white = material(diffusepen=gray(0.4), emissivepen=gray(0.6));
draw(ray);
real i1 = intersect(P = rayStart, Q = rayEnd, X, UVO);
real i2 = intersect(P = rayStart, Q = rayEnd, X, XYO);
dot(point(ray, i1));
dot(point(ray, i2));
draw(surface(planeUV), m_white);
draw(planeUV);
draw(surface(planeXY), m_white);
draw(planeXY);
我还想用点来可视化交叉点,但目前还不行。
类似问题已经解决这里,但不幸的是我找不到方法来使该代码适应我的情况。
我读到过,在 Asymptote 和 Tikz 中制作具有正确 z 顺序的 3D 图形通常非常困难,但考虑到我的非常简单的草图,这应该不是那么难,对吧?
如果 Asymptote 或 Tikz 无法实现,是否存在可以实现我想要的包/工具?
感谢您的帮助!