我想用 Asymptote 模块沿圆周写入文本labelpath3
。下面是代码:
size(200);
import labelpath3;
path3 g = shift(-Z)*unitcircle3;
string txt = "Orizzonte";
draw (g,1bp+red);
draw(labelpath(txt,g,angle=180,optional=rotate(-70,X)*Z));
我刚开始使用 Asymptote,上面的代码是我在 Asymptote 教程中看到的。此代码写入的文本太大。如果我将参数txt
乘以labelpath
终端scale(0.2)
,则会显示以下消息:
cannot call surface labelpath(string s, path3 p, real angle, triple optional)
with parameters:
(label,path3,int angle, triple optional)
为什么?
答案1
我只能猜测你想要什么。你需要使用scale3
而不是scale
。如果你只想在路径的一部分上放置文本,根据示例本网站您需要使用子路径。
\documentclass{standalone}
\usepackage{asypictureB}
\begin{document}
\begin{asypicture}{name=AsyPlot}
size(200);
import labelpath3;
path3 g = scale3(0.1)*shift(-Z)*unitcircle3;
string txt = "Orizzonte";
draw (g,1bp+red);
draw(rotate(-40,Z)*labelpath(txt,subpath(g,0,reltime(g,0.4)),angle=-90,optional=rotate(-70,X)*Z));
\end{asypicture}
\end{document}