在我正在開發的OpenGL應用程序中,我有一個半徑爲r的球體和一個經緯度點陣列。旋轉四個方塊使其與球體垂直
我想渲染一個球體,然後在每個經緯度渲染一個正方形。我被卡住的那部分旋轉了正方形,因此對於任何位置,它都垂直於球體表面 - 就像一個切線。
球體以原點爲中心。
僞代碼,我有:
lat = rand(180.0) - 90.0;
lng = rand(180.0);
phi = (90.0 - lat) * PI/180.0;
theta = (360.0 - lng) * PI/180.0;
x = radius * sin(phi) * cos(theta);
y = radius * cos(phi);
z = radius * sin(phi) * sin(theta);
square.setRotation(rx, ry, rz);
square.setPosition(px, py, pz);
我要來爲RX,RY和RZ值。其中一個當然應該是0,我想其他2個連接到經緯度,但我試過的所有組合都沒有奏效。
JavaScript的例子在這裏:http://jsfiddle.net/NZEBH/2/
當旋轉爲零時,您的方形如何定向? –
什麼是輪換順序? –
這是我得到的,如果setRotation的值都是0(http://i.imgur.com/Ghurv.png) - 不確定你的意思是按順序排列。我*想*我可以在每個軸上單獨旋轉,因此我可以控制順序。或者你的意思是在我設置位置之前旋轉嗎? – speedwell