Asymptote 中有许多长 path3

Asymptote 中有许多长 path3

我正在使用外部程序在球体上生成大量(比如几千个)长随机分形path3(每个分形最多几千个点)。我想在 Asymptote 中生成一个显示这些路径的 3D 图形。目前,我的工作流程是使用我的外部程序将所有数据写入大型 Asymptote 脚本并进行编译。

当我尝试非常小的示例(即只有几十条路径而不是几千条路径)时,此方案有效,但很快它会变得非常慢并且占用大量内存。我可以将数据写入文本文件并将其读入 Asymptote,但这有点丑陋,而且瓶颈似乎不太可能是解析 .asy 文件。此外,这个问题似乎特定于 3D,所以我希望有一些适当的 3D 选项组合(或类似的东西)可以解决这个问题。

考虑到外部数据生成,很难给出一个密切具有代表性的 MWE,但这个程序(显示了 10,000 步长的随机游走)抓住了根本问题。

size(5cm);
import three;

triple q = (0.0,0.0,0.0);
path3 p = q;

for(int i=1;i<=10^4;++i){
  q = q + (2*unitrand()-1, 2*unitrand()-1, 2*unitrand()-1);
  p = p -- q;
}

draw(p);

TL;DR 有效渲染许多 s 的最佳方法是什么path3

答案1

您可以通过将 path3 更改为 guide3 并使用细笔绘图来大大加快示例速度:

绘制(p,thin());

http://asymptote.sourceforge.net/doc/Paths-and-guides.html#index-guide

相关内容