2012-09-21 109 views
7

我想知道是否有人遇到過這個特定的問題。 隨着我基本瞭解如何使用webgl和three.js繪製3d對象,似乎我無法找到創建paralelipiped(或者我認爲這是如何調用它)的方法,該方法從cubegeometry繼承它的幾何,但沒有90度的所有角度。如何在Three.js中剪切立方體

我的目標是有這樣的事情:

example

結果應該是非常相似,什麼

-moz-transform: skew(0,-45.1deg); 

將HTML元素做。任何人都可以幫我找到解決方案嗎?

我感謝您的考慮。

回答

18

您需要做的是創建立方體網格,然後將剪切矩陣應用於立方體的幾何體。該操作會按照您所描述的方式扭曲幾何圖形。

var geometry = new THREE.BoxGeometry(5, 5, 5); 

var matrix = new THREE.Matrix4(); 

matrix.set( 1, Syx, Szx, 0, 
      Sxy,  1, Szy, 0, 
      Sxz, Syz, 1, 0, 
       0,  0, 0, 1 ); 

geometry.applyMatrix(matrix); 

這裏是一個小提琴:http://jsfiddle.net/4kHdQ/54/

編輯:更新到three.js所r.71

+0

太好了!這正是解決問題所需要的。謝謝。 – khael

+0

看起來不錯,我該如何'讀'那個矩陣?什麼影響什麼? –

相關問題