【发布时间】:2019-02-22 06:42:49
【问题描述】:
我需要找到与任意形状四边形相交的网格单元的所有索引[x, y],由其角坐标定义;
- 网格单元格是带有
128 x 128 px的图块 网格单元格具有介于
[-nx, -ny]和[nx, ny]之间的整数索引
(最大扩展是带有(2nx * 128) * (2ny * 128) px的正方形)四边形由角点定义,像素空间中的坐标
(qx, qy)为(tl, tr, br, bl)- 这被集成在一个 three.js 场景中:
- 角点/坐标是从基础THREE.PlaneBufferGeometry上的摄像头投射的
如何在 JavaScript 中以高效计算的方式获取所有相交图块?
现在我通过使用mx + b 以瓷砖尺寸(128px)作为步骤遍历每个四边形边来计算周长瓷砖;从那里,我只是逐行添加内部瓷砖索引。但这有点笨拙,这可能是也可能不是编码技能问题。我将尝试使用 THREE.Raycaster 来获取周边图块索引,但还不确定如何。
我正在寻找更好的算法解决方案;基本公式、伪代码、想法或确定的解决方案。
【问题讨论】:
-
@Mbo 非常感谢! ...我只是快速阅读,还不能真正完全掌握它:我想的第一件事是我是否可以/应该从像素空间移动到索引空间(让图块索引与角点相交)并实现直接抬头。或者这不是真的相关吗?
-
在像素坐标和
[column, row]索引单元格中工作 - 下一个单元格的索引与当前单元格的索引相差一个 -
@MBo 确实,“标准化”差异是我的目标。再次感谢,我会赞成你的链接答案;如果你愿意,在这里添加一个,这似乎是要走的路,或者如果我实现了我会发布我的解决方案
标签: javascript performance three.js geometry computational-geometry