簡體   English   中英

在 3d 中沿向量查找點

[英]finding points along a vector in 3d

我在 3d 空間中有兩個點,我想獲得它們之間的點列表,這些點彼此之間的距離為“r”。 如何使用統一功能最輕松地做到這一點? 在此處輸入圖片說明

Vector3[] GetPointsInbetween(Vector3 a, Vector3 b, float offset){
    int count = (int)((b - a).magnitude / offset);
    Vector3[] result = new Vector3[count];

    Vector3 delta = (b - a).normalized * offset;

    for (int i = 0; i < count; i++) {
        result[i] = a + delta * i;
        Debug.Log(result[i]);
    }

    return result;
}

但是.magnitude.normalized是非常昂貴的操作,盡量避免在Update()使用它

您可以通過使用Vector3.MoveTowards http://docs.unity3d.com/ScriptReference/Vector3.MoveTowards.html來完成它

我不熟悉 Unity 函數,但正式地描述了兩點之間的線性插值。 AB之間的線段可以用參數化形式來描述

A * s + B * (1-s)

其中s來自區間[0,1]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM