簡體   English   中英

如何將3D世界坐標轉換為3D相機坐標

[英]How convert 3d world coordinates to 3d camera coordinates

我在世界坐標系中輸入了3D矢量點。 誰能描述或提供資源鏈接,以幫助我理解和實現所需的轉換和矩陣映射以轉換為相機坐標? 這個圖片http://www.mathworks.in/help/matlab/visualize/chview3.gif我知道這張圖片中的視點坐標是世界坐標,它們會轉換為相機坐標

您必須應用兩個數學運算:

  1. 用視點的坐標移動所有坐標-但方向相反。 在此之后,視點是新的原點,並且所有坐標都據此表示。

示例(“ |”僅表示向量括號)

|x'|   |x| - |x_vp|
|y'| = |y| - |y_vp|
|z'|   |z| - |z_vp|
  1. 旋轉坐標。 例如,首先繞Z,然后繞Y。這是通過兩個旋轉矩陣完成的:

Z:

|x''|   | cos a    -sin a    0 |   |x'|
|y''| = | sin a     cos a    0 | * |y'|
|z''|   |  0         0       1 |   |z'|

Y:

|x'''|   | cos b    0    -sin b |   |x''|
|y'''| = |  0       1      0    | * |y''|
|z'''|   | sin b    0     cos b |   |z''|

例如,如果您的VP位於(1,1,1),則首先將其移位,以使舊的原點現在位於(-1,-1,-1)。 相機仍在朝x的正方向看,因此您可以將其繞z旋轉225度(現在在舊的z軸上定位),然后繞y旋轉45度以直接在舊原點上進行定位。

但是,您不會旋轉相機,而是旋轉相機的整個空間,因此必須將角度乘以-1。

您可以在http://en.wikipedia.org/wiki/Rotation_matrix中找到更多信息

如果您不知道矩陣乘法,則在那里的第一章將介紹它。

暫無
暫無

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

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