我的灵感来自Jennifer Dewalt的项目169:Electro Bounce(链接:http://jenniferdewalt.com/electro_bounce/page)我想从一个粗略的想法开始,并将其添加到我的初始页面。我看到在她的页面中,线条是在彼此相距一定距离内的任何节点之间绘制的。什么是有效的方式来实现这个(在Javascript中)?任何建议或提示表示赞赏,谢谢什么是在一定距离内找到所有点的有效方法? (Javascript)
-1
A
回答
1
要找到一定距离内的所有点,你必须比较每个点与所有其他点。然而,有些事情可以尽早消除点,而无需比较它们之间的确切距离。
当看一个点时,想象一下用最大距离的半径绘制一个圆。要连接的点将位于此圈内。
现在想象一个正好包含圆的正方形。要考虑的要点将在sqare内,再加上角落里的几个点。检查一个点是否与一个圆形相比要容易得多,所以当你单击了正方形中的点时,可以检查它们是否在圆内。
因此,通过计算平方的范围开始(x
和y
是您lookning周围穴位,并d
是最大距离):
var x1 = x - d, y1 = y - d, x2 = x + d, y2 = y + d;
通过积分循环,你可以检查是否有点(px
和py
)是正方形内:
if (px >= x1 && px <= x2 && py >= y1 && py <= y2) {
然后你可以检查它是否是圈内。您可以使用Pythagoras theorem来计算点之间的距离。距离是垂直和水平距离之和的平方根,而平方根是一个昂贵的计算,所以不是你应该得到的总和,并将它与距离的平方:
if ((px - x) * (px - x) + (py - y) * (py - y) <= d * d) {
早期消除点的另一种方法是将屏幕划分为最大距离一侧的正方形,并将点存储在每个正方形的单独数组中(或将正方形数字附加到每个点)。在查看某个点时,您知道最大距离内的点只能位于同一个正方形或八个周围正方形中的任何一个。
这当然意味着当你移动点时需要做更多的工作,因为你必须检查一个点属于哪个数组,但是随着点的数量线性增长,而距离计算随着点的数量呈指数增长点。
+0
谢谢,这非常有帮助 – xheyhenry 2014-09-11 23:04:45
相关问题
- 1. 找到设定点距离一定范围内的所有用户?
- 2. 在另一个点的距离内查找所有点的算法
- 3. 有没有一种有效的方法来确定距离?
- 4. 在距离另一点一定距离的二维网格上查找所有点的算法
- 5. 在R中有效计算一点和一组点之间的所有距离
- 6. 通过路径获取一定距离内的所有点
- 7. 如何有效地找到C中所有点之间的距离?
- 8. 在特定距离内查找所有最近的邻居
- 9. 找到一个点,使距离一个有限区域内的一组点的总距离最大
- 10. 找到距离地点最小总距离的点的算法
- 11. 什么是找到距离某个位置最近的非碰撞矩形的有效方法
- 12. 有没有一种算法来找到所有其他节点的每个节点的距离
- 13. 在加权图中找到从节点到所有其他节点的距离
- 14. 什么是快速找到物品的有效方法?
- 15. 找到两个集合的最有效方法是什么?
- 16. 寻找有效数字的距离
- 17. 沿着距离两个给定点的距离找到一条中间点
- 18. 对于图中的每个顶点,找出距离内的所有顶点d
- 19. 特定距离内的点
- 20. 找到引用特定程序集的所有其他程序集的最有效方法是什么?
- 21. 检索距离内的所有地面
- 22. 计算2个整数坐标点之间距离的最有效方法是?
- 23. 什么是在Javascript中反转数组的最有效方法?
- 24. OpenGL找到一个点的距离
- 25. 在线性时间内查找树中所有节点的最大距离
- 26. 如何根据javascript中的两点和所有距离找到三角形的最后一个点坐标?
- 27. 查询查找距离特定节点两步的所有节点
- 28. 突出显示所选页码的有效方法是什么?
- 29. 查找距离最近的点在数据集中的所有点 - Python的
- 30. 找到数字的所有因素的最有效方法?
这不是一个编码工厂。你需要研究和尝试..不只是要求代码或方向.. – 2014-09-11 09:20:37
不能看看例子atm。但如果它只是距离,你可以使用欧几里得距离:http://en.wikipedia.org/wiki/Euclidean_distance – speendo 2014-09-11 09:23:21
[我真的很喜欢她的文字到盲文转换器。](http://jenniferdewalt.com/text_to_braille/转换器) – Andy 2014-09-11 09:24:46