我们可以从宏中返回一个path
或吗?以及如何调用返回值?谷歌说“picture
vardef
最后一条语句没有分号;它的值由函数返回“。我的目的是重复使用路径或图片。后面是一小段代码。但是失败了。也许我误解了什么。请注意,返回的路径或图片可能不需要画出来。它可能被用来帮助构造其他东西,例如,帮助找到交点。
vardef foo (expr from, to) =
path p;
p = from -- to
enddef;
beginfig(1)
path p;
pair A, B;
A = (0,0);
B = (1,1);
p = foo (A, B);
draw p;
endfig;
答案1
您可以这样做,而且无需指定返回对象的类型,甚至无需为其命名。这也应该适合您:
vardef foo (expr from, to) =
from -- to
enddef;
beginfig(1)
path p;
pair A, B;
A = (0,0);
B = cm*(1,1);
p = foo (A, B);
draw p;
endfig;
end.
编辑:这是相同程序的等效但更短的编码,没有在这个简单情况下不必要的变量。
vardef foo (expr from, to) =
from -- to
enddef;
beginfig(1)
draw foo (origin, cm*(1,1));
endfig;
end.