我正在尝试重现 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 功能。
编辑仔细阅读链接的文章后,我终于了解到作者使用了vector
Denis Roegel 定义的类型TUGboat 文章。
let vector=color;
let Xp=redpart; let Yp=greenpart; let Zp=bluepart;
事实上,它与Metafun 提供的模块featpost
(以及下面 Henri Menke 的评论)中使用的是同一件事:使用3D 坐标类型……tres
color