如何在 Asymptote 中将二维图片(渐近线图片对象)添加到三维图形中?我试过了add(picture, triple)
,但没有输出(没有错误,只是一个空白屏幕)。完整代码:
import three;
picture p;
size(p, 300);
defaultpen(0.1pt);
path P=polygon(6);
int h, k;
h=3;
k=5;
int bigger(int a, int b) {
if(a >= b) {
return a;
}
else {
return b;
}
}
real distance(pair a, pair b) {
return sqrt((a.x-b.x)^2+(a.y-b.y)^2);
}
int bound = 1+bigger(h, k);
pair A=dir(60)+dir(0), B=dir(60)+dir(120);
for(int i = -bound; i<= bound; ++i) {
for(int j = 0; j <= bound+5; ++j) {
draw(p,shift((i*A.x, abs(i*A.y))+j*B)*P, blue);
}
}
pair C, D;
C = h*A + k*B;
D = rotate(60, (0,0))*C;
clip(p,C--D--(0,0)--cycle);
draw(p,C--D--(0,0)--cycle, green+linewidth(0.15pt));
real Angle = aTan(C.y/C.x);
add(rotate(-Angle+180)*p, (0,0,0));
这(不包括 3d)产生了以下内容: 我想将它放置在三维空间中作为实体的表面,最终产生如下效果:
这可能是一个不合理的要求,但我需要这样做的原因是,我已经绘制了一张 2d 图片作为 3d 实体每个面的“图案”,并且需要一种方法将其包含在三维中。我必须在 2d 中绘制它的原因是因为我需要命令clip
,而 3d 中没有该命令。