|
|
1
1
你想看看 spatial indexing 一般来说。约翰对四叉树有一个很好的建议。可能工作的其他数据结构: |
|
|
2
2
在2d中使用任意点列表的标准解决方案是四叉树空间分区: http://en.wikipedia.org/wiki/Quadtree |
|
|
3
0
我会用简单矩阵
我看不出使用更复杂的数据结构有什么明显的优势,矩阵是非常快速和容易使用的。至于操作,例如获取给定坐标和半径的点,只需对矩阵索引执行数学运算,只检索匹配像素等,速度很快。 |
|
|
4
0
我基本上只是把一个数组封装在一个对象中,并使用一些特殊的函数来移动像素的数据,或者对它们进行采样。我在一个风蚀项目中做了类似的工作…只是使用高斯函数来根据某种周长/权重原则对数据进行采样和向下推送。 如果你想进行撤销/笔刷交互,你必须有一个映射到每个“笔刷”的像素列表,但是那看起来像一个不同的对象-你只需要让你所有的笔刷指向那个中心矩阵(对于它们影响的点的实际内容-它们可能要有“权重”关于他们对点贡献了多少颜色。 |