Napisano 12 Luty 200619 l Czesc...mam problem troszku ze slajderem,a mianowice chcialbym za jego pomoca obrazac "obiekt"....i nie wiem jak do konca to zrobic.Wpisuje mu kod..a on mi za kazdym razem trzaska errora ( ps.juz mam dosc tych errorow)...Prosze o pomoc,co robie zle... kawalek kod...: rollout wybor "Wybor " width:416 height:262 ( button ok "kupa" on ok pressed do ( rollout nowka "nowa" width:326 height:232 ( slider slider_1 "kupa" range:[0,330,165] type:#float ticks:1 on slider_1 changed do ( rotate $ (angleaxis slider_1.value ) ) -- on ) addRollout nowka pierwsza_roleta ) ) pierwsza_roleta = newRolloutFloater "Okno" 420 400 addRollout wybor pierwsza_roleta
Napisano 13 Luty 200619 l niezaglebiajac sie w scrypta wystarczy zrobic tak - create - slider- wire paremeter dialoug - i polaczy w 2 strony slider_value z dany_objekt- rotate. I wystarczy podac odpowiednie przelicznik na stopnie z radianow. A slidera zrob od 0 do 360st i tyle. chyba ze ci zalezy na scrypcie to juz nie moja brozka
Napisano 13 Luty 200619 l Jak już o obracaniu to ja tez mam problemJ Chciałbym obrucic box’a w plynny sposób , tak jak za pomoca „selekt and rogate” o ustalona wartość na spinnerze np. 30 st. W taki sposób obraca mi od razu o 30 stopni a ja chciałbym, żeby obrot wykonywany był o 30 st co np.1 st Jak to zrobic? Czy da się to zrobic za pomoca petli for, jeśli tak to jak, bo już probowalem na setki sposobow i mi nie wychodziL. Jeśli nie to w jaki sposób mogę wykonac taki plynny obrot? I jeszcze kawalek mojego kodu. ... button z2p "Prawo" pos:[120,70] spinner clones2 "Kat obrotu w prawo" range:[0,360,30] type:#integer width:55 pos:[90,140] on z1p pressed do ( (select $'Box01') ( rotate $ (angleaxis -clones2.value [0,0,1]) ) )
Napisano 13 Luty 200619 l Pavulon 13 - podales za malo parametrow w angleaxis. Powinno byc np. cos takiego: rotate $ (angleaxis 70 [0,0,1]), czyli obrot o 70 stopni wokol osi Z. Zauwazylem tez ze masz jeszcze jeden blad w lini on slider_1 changed do. Miedzy changed a do powinna byc zmienna do ktorej zostanie przypisana nowa wartosc slidera. Wtedy bedziesz mogl to zapisac tak: on slider_1 changed new_val do ( rotate $ (angleaxis new_val [0,0,1]) ) etyr11 - mozesz to zrobic za pomoca petli for ale musisz ja czyms opoznic, moze funkcja Sleep, inaczej skrypt wykona sie tak szybko ze od razu zobaczysz obiekt obrocony o 30 stopni.
Napisano 13 Luty 200619 l Autor Dzieki sliczne poraz kolejny lechoo...podziwiam Twoja wiedze-(Ty normalnie wiesz chyba wszystko) ;P...dzieki ..pozdrawaim
Napisano 14 Luty 200619 l No i cos mi nie wychodzi:/. Obrot wykonuje sie po pewnym czasie skokowo, a nie a nie jak chcialem od razu plynnie:( wiem ze cos zle robie tylko nie wiem co) I jeszcze dzieje sie cos z katem obrotu dziwnego.Zalaczam kod. Pomocy. rollout obrot "obrot boxa" ( button z1 " obrot" spinner kat "wartosc kata" range:[0,360,45] type:#integer on z1 pressed do ((select $'box01') for i = 0 to kat.value do ( sleep 0.02 rotate $ (angleaxis kat.value [0,0,1]) ) ) ) box() CreateDialog obrot weith:200 lenght:100
Napisano 14 Luty 200619 l W tej chwili obracasz obiekt w kazdym przejsciu petli o kat.value a powinienes obracac o (kat.value / ilosc_przejsc_petli), inaczej zamiast obrocic obiekt o 10 stopni, obrocisz go 10 razy o 10 stopni. Dodatkowo po kazdym wywolaniu rotate powinienes wymuszac odswiezenie sceny uzywajac np. completeRedraw() inaczej scena odswiezy sie dopiero po zakonczeniu wykonywania skryptu i zobaczysz juz obrocony obiekt.
Napisano 14 Luty 200619 l Sliczne dzieki Lechoo. Nie wiem skad ty to wszystko wiesz, ale podziwiam. Jeszcze raz wielkie dzieki. A tak przy okazji skad sie uczysz maxscript'u? I jeszcze wklejam zrobiony script-moze komus sie przyda. Pozdrawiam. rollout obrot "obrot boxa" ( button z1 " obrot" spinner kat "wartosc kata" range:[0,360,45] type:#integer on z1 pressed do ((select $'box01') for i = 0 to kat.value by 1 do ( sleep 0.01 rotate $ (angleaxis 1[0,0,1]) completeRedraw() ) ) ) box() CreateDialog obrot width:200 height:50
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto