我正在編寫基於opengl的iphone應用程序,並希望允許用戶根據他們在屏幕上移動兩個手指的方向來翻譯視圖。對於一根手指,我知道我可以從開始位置到用戶手指的當前位置計算矢量,然後找到這個單位矢量以獲得正確的方向,但我不知道如何爲兩個手指,我不認爲增加矢量的組成部分和計算平均值會起作用,所以我幾乎卡住了。如何計算兩個矢量的平均方向
10
A
回答
24
矢量數學工作就像你認爲:
v3 = (v1 + v2)/2
// so:
v3.x = (v1.x + v2.x)/2;
// same for Y and Z
3
加入他們再除以2不工作
5
簡單的思維實驗:那麼,在X和Y方向的單位向量。直觀地說,你可以看到「平均」將是一個向上和向右45度角的單位向量。這正是發生的情況。思想實驗表明,你需要將平均值的大小標準化以得到一個單位向量。我建議你這樣做。
5
如果你只在方向有興趣,你應該將它們添加和規範的結果向量,
(v1 + v2)/abs(v1 + v2)
7
通常最好是做圖形編程,所以我會推薦這時候乘不是分裂的速度的原因:
v3 =(v1 + v2)* 0.5f;
3
對不起,但這是錯誤的。在矢量世界中,平均分量意義上的「平均」意味着什麼。想象一下(-1 0)和(1 0) - >平均= 0 0 ;-)
1
它不像看起來那麼容易:你必須使用slerp-interpolation找到單位球上的半弧: http://en.wikipedia.org/wiki/Slerp 深入此處:http://www.essentialmath.com/index.htm
1
要直觀地理解它,可以繪製兩個向量。然後在兩者的端點之間繪製一條線段。這部分的中點是平均向量。這適用於任何數量的維度。
相關問題
- 1. R:計算兩個矢量
- 2. 計算兩個表的平均值
- 3. 如何計算MS reportviewer/rdlc中的平均計算平均值?
- 4. 如何在因子水平內計算矢量的加權平均值?
- 5. 計算無向片段的平均方向的算法
- 6. 如何使用三點和兩個矢量來計算平面方程?
- 7. 如何計算R中數據集的平均向量?
- 8. 計算行向量和平均行向量之間的差異?
- 9. 計算大小遞增的矢量的平均值
- 10. 如何計算平均值?
- 11. 如何計算平均值?
- 12. 如何計算平均值?
- 13. 計算兩個平方根
- 14. 用2個變量計算平均值
- 15. 根據邏輯向量獲取矢量中兩個連續值的平均值
- 16. 計算平均
- 17. 計算平均
- 18. 平均計算
- 19. 計算平均
- 20. 如何計算MDX中兩個維度的平均值
- 21. 如何計算MySQL上兩個不同表的平均值?
- 22. 如何計算的兩個列表平均值爲每行
- 23. 以矢量化的方式計算雙精度數組的平均值?
- 24. 如何按類別計算多個變量的總平均
- 25. 計算平均值的平均值
- 26. 如何使用兩個SQL請求(mysql)計算平均數
- 27. geom_vline平均不與矢量
- 28. 嵌套向量的算術平均值
- 29. 如何用單位方向矢量計算拋射體運動
- 30. 計算庫存中的平均數量
除零! – 2009-02-20 20:58:35
let v1!= v2 ... – RickyA 2013-03-12 13:27:09
如果只對方向感興趣,則v1和v2必須先歸一化。 – pikaille 2017-08-03 19:02:56