读取和写入文件的渐近线路径

读取和写入文件的渐近线路径

我想asymptote cyclic path从文件读取/写入定义。例如,在运行asymptote代码时,我想建立一个任意文件cyclic path并将该路径信息写入外部文件,以便稍后在另一次asymptote运行中包含。

这个问题已经有一个简单的解决方案了吗?

如果没有,我的想法是循环遍历节点path并使用pointprecontrolpostcontrol函数来获取write以下形式的字符串......

path p = (0,0)..controls (0,100) and (100,100)..(100,0) and so on

到外部文件,然后在稍后的asymptote运行中包含该文件。有人知道更简单的方法吗?

答案1

不管出于什么原因,writeAsymptote 中的函数接受一个path参数来执行您想要的操作,尽管手册中似乎没有提到这一点。请注意,似乎没有相应的函数可以直接将 a 转换path为 a string,因此您不能写出类似"path p = " + (string)p + ";"where pis 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

相关内容