基于附近点的平均高度

问题描述 投票:0回答:1

我的游戏里有个情况。我正在试验地形的生成。

我有一堆山峰,我知道它们的位置和海拔高度.我有一个点,它被所有这些山峰包围。我知道它的位置。我想计算这个点的海拔高度。

我想计算这个点的高度,基于它离这些山峰的距离,以及每个山峰的海拔高度。

例如:山峰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)

谢谢你,我的游戏里有个情况

math height average weighted elevation
1个回答
0
投票

为了绘制山峰,你的游戏需要将山峰的坐标转换为屏幕坐标,这种计算通常是通过将一个矩阵与包含坐标的向量相乘来完成的(在java AWT中,这样的矩阵被称为变换),你需要的是该矩阵的倒数,这样你就可以将其应用于屏幕坐标。

  • 获取用于渲染地形的矩阵。
  • 计算逆矩阵
  • 应用到你的屏幕坐标上

甚至可能更有效的做法是不使用原矩阵来计算逆矩阵,而是使用计算原矩阵的参数(零点、比例系数和旋转角度)。同样的参数也可以用来计算逆矩阵。

© www.soinside.com 2019 - 2024. All rights reserved.