我尝试根据其三个顶点,使用渐近线在空间中绘制一个三角形。
一个简单的例子是
import grid3;
import graph3;
size(12cm,0);
currentprojection=orthographic(1,-2,1);
currentlight=(1,-1,0.5);
triple p0=(0,0,0);
triple p1=(0,1,1);
triple p2=(1,1,1);
grid3(new grid3routines [] {XYXgrid(0)},
pGrid=new pen[] {0.5blue},
pgrid=new pen[] {0.5blue});
draw(p0--p1--p2--cycle);
这产生了多边形的边界。但是,我无法填充三角形。我假设我可以将其参数化并将其绘制为参数化曲面,但这对我来说也不起作用。我尝试使用以下方法
triple f(pair t) {return((1-t.x)*((1-t.y)*p0+t.y*p1)+t.x*p2);}
surface s=surface(f,(0,1),(0,1),10,10,Spline);
s.colors(palette(s.map(zpart),Rainbow()));
draw(s,render(merge=true));
而不是draw
上一个片段中的最后一个。此尝试会产生一个空白页。
如何使用填充(并绘制其边界?)空间中的三角形asymptote
?
答案1
填充三角形替换
draw(p0--p1--p2--cycle);
经过
draw(surface(p0--p1--p2--cycle),yellow);
draw(p0--p1--p2--cycle);
就是这样。