如何在球体内生成向量列表?

时间:2017-07-29 17:03:01

标签: c# loops vector

我试图在小行星内为游戏生成挖掘点。 话虽如此,我有小行星中心点,小行星的半径,以及我使用的船的大小。

这是我的方法,但是它在小行星范围之外创建了矢量。

Public Function countRows(startRange As Variant)

    Dim rng As Range
    Set rng = startRange.Address


    If IsEmpty(Range(rng, rng.End(xlDown))) = True Then
        countRows = 1
    Else
        countRows = Range(rng, rng.End(xlDown)).Rows.Count
    End If

End Function

1 个答案:

答案 0 :(得分:1)

如果你想保留当前的代码,你想要做的是获得从小行星中心到刚刚创建的矿物的矢量。

获得该矢量后,将其除以其长度,并将其乘以小行星的半径 - 这将使该点在其表面上正确,但与之前的角度相同。

如果你想让矿物体在小行星内部,那么将矢量乘以一个小于半径的数字。

如果你想要另一种技术 - 创建一个带有随机值的3d矢量(确保它们不是全部为0),并按照之前的说明(从第2段开始)执行相同操作。 < / p>

最后,在获得相乘矢量的结果后,将小行星的中心位置矢量添加到其中,然后获得矿物位置(相对于小行星使用的坐标原点)。