簡體   English   中英

如何在兩點之間線性插值 x、y 和 z?

[英]How to linear interpolate the x, y, and z between two points?

假設在開始時間 0s 我有 point_1(10,20,35) 和在結束時間 10s 我有 point_2(20,40,50)

我將如何使用線性插值來查找 5 秒時點的位置?

我想在不使用任何 python 庫的情況下手動執行此操作。 我試圖了解如何對 x、y 和 z 平面使用線性插值。

我知道我會從這個開始

start_time = 0
start_x = 10
start_y = 20
start_z = 35

end_time = 10
end_x = 20
end_y = 40
end_z = 50

# I want the point at time 5s
time = 5
def interpolate():
    pass

x1x2之間插值的公式是(1 - t) * x1 + t * x2 ,其中t范圍從 0 到 1。我們需要先將t放入這個范圍內:

def interpolate(v1, v2, start_time, end_time, t):
    t = (t - start_time) / (end_time - start_time)
    return tuple((1 - t) * x1 + t * x2 for x1, x2 in zip(v1, v2))

例子:

>>> interpolate((10, 20, 35), (20, 40, 50), 0, 10, 5)
(15.0, 30.0, 42.5)

暫無
暫無

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

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