代表光线片段的最pythonic方式

时间:2019-03-24 10:28:24

标签: python algorithm data-structures graph

我正在用python编写光线跟踪模拟。有些光源会发出光线,然后在/通过表面反射,吸收和透射。我正在使用vpython作为可视化工具,但其背后的数据模型是独立的。

我正在使用模拟进行计算

  • 行程长度统计信息(均值,分布)
  • 反射次数
  • 有关特定表面上入射角的一些统计数据
  • 后来我想添加反射系数/函数,以计算行进路径上的强度损失

目前,传输尚未实现,但我想为此准备数据结构。最明显的解决方案是使用复合模式,例如:

  • 有光源,他们的孩子是射线分段的集合
  • 每个射线段都有起点和终点,可以有0个(完全吸收),1个(反射)或2个(透射+反射)子级。

实施此模式时,我意识到python does not "like" recursions-这是行走在我的射线段树上并显示它们或计算新射线段的最明显方法。

由于有两个孩子,将段存储为列表似乎是错误的。

我看到,有一些graph libraries用于python,但是它们似乎不太容易使用,我希望使用这些库来计算上述统计信息会不必要地麻烦。

是否有一种简单的,pythonic的方式来表示和遍历这些射线分段?

0 个答案:

没有答案