假设 $S$ 是 $\mathbb{R}^3$ 中的一个曲面。我有一大组属于这个曲面的点 $(x, y, z)$,我想使用 LaTeX 中的 Asymptote 绘制它。这是我的代码版本,它不起作用,因为它符合要求,没有错误,但没有产生结果。提前谢谢您。
import three;
size(200);
currentprojection = perspective(6,3,2);
file in = input("xyz.dat").line();
real[][] a=in;
a=transpose(a);
real[] x = a[0];
real[] y = a[1];
real[] z = a[2];
triple[][] points;
for (int i = 0; i < x.length; ++i) {
triple[] currentPoint = {(x[i], y[i], z[i])};
points.push(currentPoint);
}
surface s = surface(points);
draw(s);
答案1
我认为,有几个问题。
首先,surface(triple[][])
是 的一部分graph3
,而不是three
。因此您需要import graph3;
改为 。
其次,如果我没有看错的话,你的代码xyz.dat
基本上把所有内容都放到了一个一维数组中triples
(它的宽度只有 1)。这将不是适用于surface
;该函数surface(triple[][])
构建一个由两个数组维度参数化的线框。您将信息填充到数组中的方式,没有要绘制的表面,因为整个事物被解释为一维曲线。