我想asymptote
cyclic path
从文件读取/写入定义。例如,在运行asymptote
代码时,我想建立一个任意文件cyclic path
并将该路径信息写入外部文件,以便稍后在另一次asymptote
运行中包含。
这个问题已经有一个简单的解决方案了吗?
如果没有,我的想法是循环遍历节点path
并使用point
、precontrol
和postcontrol
函数来获取write
以下形式的字符串......
path p = (0,0)..controls (0,100) and (100,100)..(100,0) and so on
到外部文件,然后在稍后的asymptote
运行中包含该文件。有人知道更简单的方法吗?
答案1
不管出于什么原因,write
Asymptote 中的函数接受一个path
参数来执行您想要的操作,尽管手册中似乎没有提到这一点。请注意,似乎没有相应的函数可以直接将 a 转换path
为 a string
,因此您不能写出类似"path p = " + (string)p + ";"
where p
is a path 的内容。
令人惊讶的是,下面的示例甚至在第一次asy
运行时就有效,这意味着它本质上包含自写代码。
size(5cm);
path p = (0,0) .. (1,1) .. (2,0) .. cycle;
file f = output("pathcode.asy");
write(f,"path q = ");
write(f, p);
write(f, ';');
close(f);
include "pathcode.asy";
draw(q);
write(q); // write to command line / terminal
最终的终端输出:
(0,0).. controls (-0.0663123,0.549145) and (0.418883,1)
..(1,1).. controls (1.58112,1) and (2.06631,0.549145)
..(2,0).. controls (1.85727,-1.18201) and (0.142734,-1.18201)
..cycle