免责声明:这是上课的,但是我的想法很新鲜,并且非常感谢您朝正确的方向轻推。此外,这需要在原始 C 中实现,因此不能使用花哨的库。
我必须为潜艇编写一个搜索和救援模拟器,它必须找到一个随机放置在 MAX_XYZ (100000) 网格中的 3D 空间中的探针。我得到的唯一工具是“ping”,它将给出某个潜艇和探头之间距离的大小。目标是优化整个操作的成本,因此暴力尝试(例如查看每个坐标)将不起作用。因此,我在考虑三角剖分。
现在,这对我来说很有意义,放置三个潜艇,每个潜艇都使用他们的 ping 来获取它们与探头之间的距离。由于每个子之间的距离已知,因此很容易用它们构建四面体的底部,并且 ping 的结果将指向某个坐标,我遇到的问题是如何计算高程,或四面体的高度。
所以我的数据如下:
- 潜艇之间的距离(矢量格式)
- 每个潜艇之间的角度(很容易计算)
- 每个子和探头之间的距离(从底部到峰值的 3 段)
- 四面体的外 3 个表面中的每一个内的角度。
我试图找到与四面体顶点和每个顶点的相对角度的某种关系,但是我发现的所有东西都必须处理用等边三角形构建的四面体,这没有多大帮助。我的印象是这可以通过 trig 轻松解决,但要么我没有看到它,要么我需要更多的咖啡。
任何建议,将不胜感激!