Metapost 错误!表达式不能以“]”开头

Metapost 错误!表达式不能以“]”开头

我正在尝试重现 Metapost 中的示例这里但我遇到了这个错误:

!表达式不能以`]'开头。0] l.12 vector e[],u[];

这是代码:

prologues:=3;                % include all fonts
outputtemplate:="%j-%c.mps"; % output file will be file.mps
beginfig(1);
phi:=25;                     % latitude
lambda:=28;                  % longitude
Omega=35;                    % longitude of ascending node
incl=30;                     % inclination
omega=43;                    % longitude of periapsis in orbital plane
vector e[],u[];
e1=(1,0,0);                  % aries - vernal equinox
e2=(0,1,0);                  % e2=e x e1 - not used
e3=(0,0,1);                  % e3=e=ENP
endfig;
end.

知道为什么会发生这种情况吗?

答案1

MetaPost 中没有vector类型,你必须使用pair,并且正如其名称所示,必须有两个坐标,而不是三个。MetaPost 是一种基于 2D 的语言。

查看壮举软件包是 MetaPost 用于 3D 绘图的示例。另请参阅渐近线语言,它受到 MetaPost 的启发,具有完整的 3D 功能。

编辑仔细阅读链接的文章后,我终于了解到作者使用了vectorDenis Roegel 定义的类型TUGboat 文章

let vector=color;
  let Xp=redpart; let Yp=greenpart; let Zp=bluepart;

事实上,它与Metafun 提供的模块featpost(以及下面 Henri Menke 的评论)中使用的是同一件事:使用3D 坐标类型……trescolor

相关内容