2012-08-06 45 views
4

我對大小問題:三個JS大小的物體(PlaneGeometry)?

var geometry = new THREE.PlaneGeometry(50, 50); 

    var plane = new THREE.Mesh(geometry, material); 

    plane.doubleSided = true; 
    plane.tile = tile; 

所以,問題是:PlaneGeometry的大小,不是以像素爲單位對不對?當我的canvas大小超過500x500時,它最終會少於50x50?

PS>還有一個問題,如何在元素已經添加到場景時獲取元素的大小? 謝謝!

回答

11

50x50不是像素。這是「單位」。無論你想要一個「單位」(它是相對於其他對象的大小)。

如果你想在一個可控的方式來調整一個對象,你可以這樣做:

var geometry = new THREE.PlaneGeometry(1, 1); 
var plane = new THREE.Mesh(geometry, material); 

plane.scale.x = 50; 
plane.scale.y = 50; 
+0

但是,單位怎麼可能是一個像素? :) – MoonSilver 2012-08-07 07:37:54

+0

還有一個問題,我怎麼能得到,這個場景中的飛機物體,尺寸是50x50? – MoonSilver 2012-08-07 07:46:22

+0

這就是答案的解釋... – mrdoob 2012-08-07 10:40:15

0

PS>還有一個問題,當它已經被添加到現場如何獲得分量的大小?謝謝!

我使用thingiview js的插件,我已經注意到, 如果你有一個對象添加到場景中,你可以立方體內的 關閉座標:

p0 = [minx, miny,minz], p1 =[minx,miny,maxz], ..., p7 =[maxx, maxy,maxz];

,其中:

var minx = object.geometry.min_x; var maxz = object.geometry.max_z;

等。

PS:我知道這個問題有點古怪,但我一直在尋找那些參數(試圖獲得添加對象的大小),但無法在任何地方找到它。