我的游戏里有个情况。我正在试验地形的生成。
我有一堆山峰,我知道它们的位置和海拔高度.我有一个点,它被所有这些山峰包围。我知道它的位置。我想计算这个点的海拔高度。
我想计算这个点的高度,基于它离这些山峰的距离,以及每个山峰的海拔高度。
例如:山峰1在(0,0),海拔500山峰2在(100,100),海拔1000山峰3在(0,100),海拔750。
如果我的点在(99,99),我想让这个点的海拔高度尽量接近1000。
这个问题的名称是什么?如果你已经有解决这个问题的方法,那也将非常感激。
注: 此外,如果公式也能让我生成负海拔,那将会很有帮助。例如,所有山峰之间的中间点也可能在海平面之下。任何我可以想到的公式通常只给我正值的结果。我假设必须考虑某种 "坡度 "来允许这种情况发生。
一个公式,我虽然到目前为止是
P1.height * (Sum of all distances - distance from P1)/(Sum of all distances) +
P2.height * (Sum of all distances - distance from P2)/(Sum of all distances) +
... Pn.height * (Sum of all distances - distance from Pn)/(Sum of all distances)
谢谢你,我的游戏里有个情况
为了绘制山峰,你的游戏需要将山峰的坐标转换为屏幕坐标,这种计算通常是通过将一个矩阵与包含坐标的向量相乘来完成的(在java AWT中,这样的矩阵被称为变换),你需要的是该矩阵的倒数,这样你就可以将其应用于屏幕坐标。
甚至可能更有效的做法是不使用原矩阵来计算逆矩阵,而是使用计算原矩阵的参数(零点、比例系数和旋转角度)。同样的参数也可以用来计算逆矩阵。