Tworzę projekt z three.js
, w którym użytkownik może dynamicznie zmieniać wymiary modelu. Pytanie jest bardzo podobne do this one, które zamieściłem, ale obawiam się, że nie działa, ponieważ tym razem pracuję z wytłoczeniem płaskiego kształtu. Fragment kodu gdzie mam problemy to:Dynamicznie skaluj obiekt na innym
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;
});
Jak można zaobserwować, kiedy zmienić roof.scale.y
, również obiekt jest w ruchu, ale powinien pozostać przymocowane do górnej części kostki. Czy wiesz, co robię źle? To jest jsfiddle z pełnym kodem.
Z góry dziękuję za odpowiedzi!
To jest trzecie pytanie na ten sam temat, ale każdy jest nieco trudniejszy niż poprzedni. Ale wszystkie z tym samym wspólnym mianownikiem. Problemy z wyrównaniem skali i obiektu na podstawie tej skali. Być może myślisz o tym problemie wszystko źle. Myślę, że byłoby łatwiej, gdyby twój GUI rzeczywiście manipulował rzeczywistymi wymiarami twoich żywiołów, a nie ich skalą. Jeśli znasz dokładne wymiary swoich obiektów, znacznie łatwiej jest wyrównać inne elementy na nich lub wokół nich. Tylko myśl. – gaitat
@gaitat Wiem, ale wszystkie przykłady, jakie mogłem znaleźć, to manipulowanie skalą obiektu, a nie jego wymiarami. Ale proszę, jeśli wiesz, niektóre przykłady pokazują mi je. Dziękuję Ci!! –
Zaktualizowano skalowanie: [jsfiddle] (http://jsfiddle.net/zeLxp81b/3/) – uhura