PAINbringer Napisano 13 Czerwiec 2007 Napisano 13 Czerwiec 2007 Witam No właśnie potrzebny jest mi taki oto prosty skrypt, który po uruchomieniu zaokrągla mi współrzędne wszystkich vertexów zaznaczonego obiektu do liczb całkowitych. Nie znam max script, więc jeśli ktoś słyszał o takowym skrypcie to prosze o info (ja w każdym badź razie nie znalazłem). Oczywiście jeśli ktoś ma pomysł jak to napisać (podejżewam że ta sytuacja to banał do napisania) to również będe bardzo wdzięczny za pomoc Pozdrawiam
lechoo Napisano 13 Czerwiec 2007 Napisano 13 Czerwiec 2007 W najprostszej wersji taki skrypt moglby wygladac tak: objVCount = getNumVerts $ for v in 1 to objVCount do ( local vPos = in coordsys world getVert $ v setVert $ v [(vPos.x + 0.5) as integer,(vPos.y + 0.5) as integer,(vPos.z + 0.5) as integer] ) update $ W petli pobieramy pozycje kazdego vertexa, zaokraglamy i ustawiamy vertexa na nowej pozycji. Na koniec update obiektu.
PAINbringer Napisano 19 Czerwiec 2007 Autor Napisano 19 Czerwiec 2007 Wielkie dzięki Lechoo, skrypt działa i baaardzo mi to ułatwi życie w najbliższym czasie :). Pojawił się tylko jeden problem z sposobem realizajcji tej funkcji, a mianowicie liczby są zaokrąglane do liczb bliższych zeru np. z 0.124 zrobi 0.0 a z 0.984 również do 0.0 a nie jak bym chciał do 1.0 . Jest jakiś w miare prosty sposób by to zmienić? Pozdrawiam ps:Aha i liczby 0.5 zmieniłem na 0.0 z powodów wspomnianych powyżej
lechoo Napisano 19 Czerwiec 2007 Napisano 19 Czerwiec 2007 0.5 jest wlasnie po to zeby zaokraglal prawidlowo. Konwersja na integera odbywa sie przez usuniecie czesci ulamkowej. Gdyby nie 0.5 efekt bylby jak po zastosowaniu funkcji floor. Spojrze jeszcze na to wieczorem.
lechoo Napisano 19 Czerwiec 2007 Napisano 19 Czerwiec 2007 print ((0.124 + 0.5) as integer) print ((0.984 + 0.5) as integer) wypisuje odpowiednio 0 i 1. Tutaj wszystko jest ok. 1
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się