2015-04-28 31 views
10

Kullanıcı, modelin boyutlarını dinamik olarak değiştirebileceği three.js numaralı bir proje hazırlıyorum. Soru, yayınladığım this one'a çok benziyor, ancak korkarım ki bu sefer düzlemsel bir şeklin ekstrüzyonu ile çalışıyorum.Dinamik olarak ölçeklendirilmiş nesne başka bir tanesinin üzerine yığılmış

cubeY.onChange(function(value){ 
    cube.scale.y = value; 
    cube.position.y = (cubeHeight * value)/2; 
    roof.position.y = (roofHeight * roof.scale.y)/2 + cube.position.y * 2 - roofHeight;});; 
roofY.onChange(function(value){ 
    roof.scale.y = value; 
    roof.position.y = ((roofHeight * value) + cube.position.y * 2) - value * roofHeight; 
}); 

gözlemlemek gibi ben roof.scale.y değiştirdiğinizde, aynı zamanda nesnenin hareket ediyor ancak küpün üst kısmına sabit kalan olmalıdır: Ben sorun yaşıyorum kod bloğu şudur. Neyi yanlış yapıyorum biliyor musunuz? Bu, tam kodlu bir jsfiddle.

Yanıtlarınız için şimdiden teşekkür ederiz!

+0

Bu, aynı konudaki üçüncü sorudur, ancak her biri öncekinden biraz daha serttir. Ama hepsi aynı ortak payda ile. Bu ölçeğe göre ölçek ve nesne hizalama ile ilgili sorunlar. Belki de bu problemi yanlış anlıyorsunuzdur. Eğer GUI'niz gerçekten kendi elemanlarınızın gerçek boyutlarını manipüle ettiyse daha kolay olurdu diye düşünüyorum. Nesne öğelerinizin tam boyutlarını biliyorsanız, diğer öğeleri üzerlerinde veya etraflarında hizalamak çok daha kolaydır. Sadece bir düşünce. – gaitat

+0

@gaitat Biliyorum, ancak bulabildiğim bütün örnekler boyutlarının değil, bir nesnenin ölçeğinin manipüle edilmesiydi. Ama lütfen, eğer bazı örnekler biliyorsanız bunları bana gösterin. Teşekkür ederim!! –

+1

y Ölçekleme için güncellendi: [jsfiddle] (http://jsfiddle.net/zeLxp81b/3/) – uhura

cevap

4

Ölçekli küpün yüksekliği cubeHeight * cube.scale.y ve çatı roofHeight * roof.scale.y'dir.

küp (küpün yükseklik)

Üst orta pozisyonu küp yüksekliği eksi yarım tavanın yükseklik cube.position.y + cubeHeight/2 * cube.scale.y ya da pozisyon yüzden sadece cubeHeight * cube.scale.y

Çatı geometrik merkezi sistem merkezi koordine olmayan olduğu

cube.position.y + cubeHeight/2 * cube.scale.y - roofHeight/2 * roof.scale.y 

Jsfiddle example

İlgili konular