2016-12-14 49 views
0

我是ThreeJS中的dummie \ newbie。 :)ThreeJS cube在Mesh.position.x爲負時自動旋轉

無論如何,我認爲這是ThreeJS默認行爲,當你設置網格的位置。

我正試圖在ThreeJS中設計一個類似於項目工作分解結構(WBS)的結構。見下圖。 WBS中的所有框\立方體都是對齊的。

enter image description here

這就是我的代碼發生在ThreeJS:

enter image description here

我創建了一個名爲createCube一個輔助函數接受這樣一個對象作爲參數:

var gestaoProjeto = createCube(
{ face1: { color: 'yellow', text: '1', textColor: 'yellow' }, 
    face2: { text: '2', textColor: 'blue' }, 
    face3: { text: '3', textColor: 'black' }, 
    face4: { text: '4', textColor: 'cyan' }, 
    face5: { color: 'red', text: 'Gestão do Projeto', textColor: 'yellow' }, 
    face6: { text: '6', textColor: 'gray' }, 
    x: -400, 
    y: 125 
}); 

我想讓攝像機\用戶面前的立方體的紅色臉孔,並讓它到m只有當用戶與場景交互時,纔會使用OrbitControls。正如你在上面的圖片中看到的,face1(黃色)的一部分已經顯示,face5被旋轉。

如果我做的:

gestaoProjeto.rotation.set(-0.1,0.5,0); 

它旋轉,但它不是很好,我不得不旋轉取決於他們的位置每一個立方體。

是否有可能完成我想「自動」?

回答

1

ThreeJS IRC Channel的用戶bai回答了,並且是spot-on。

他告訴我使用OrthographicCamera而不是樣本中大部分時間使用的PerspectiveCamera


對於那些有興趣在一些背景,在這裏不用關於相機類型的一個非常好的解釋:

爲了要渲染這些模型,攝像機必須放在告訴渲染他們應該如何被觀看。 Three.js有兩種類型的相機,正交和透視。正投影消除透視,無論距離攝像機有多遠,都會以相同比例顯示所有物體。這對於工程是有用的,因爲由於透視的不同尺寸可能難以區分物體的尺寸。你會認識到在組裝傢俱或模型車的任何方向上的正投影。透視攝像機包括其相對於場景的位置的屬性,並且如其名稱所暗示的那樣可以基於屬性與攝像機的距離來渲染模型的大小。 攝像機控制場景的可視區域或可視區域。觀看平截頭體可以被描繪爲由其近遠屬性(該區域開始和停止的平面)定義的盒子,以及定義盒子的尺寸的「長寬比」。任何存在於視覺空間之外的物體都不在場景中繪製 - 但仍然呈現。

來源:https://www.smashingmagazine.com/2013/09/introduction-to-polygonal-modeling-and-three-js/#cameras