slate Napisano 21 Lipiec 2005 Napisano 21 Lipiec 2005 Witam, Nie mam specjalnego doswiadczenia z maxscriptem, ale zastanawialem sie, czy mozliwa jest realizacja swego rodzaju wizualizacji, a mianowicie wygladac by to mialo tak: Powiedzmy, ze mam zestaw plikow, w kazdym mam tablice punktow. Chcialbym, aby skrypt wykonal animacje polegajaca na wczytywaniu punktow z kolejnych plikow (kazdy dla innego kroku czasowego) i rozpinaniu powierzchni opisywanej punktami. Co wiecej, czy mozliwe jest wczytywanie koloru punktow z pliku (powiedzmy wartosc danego punktu o wsp. x i y odpowiada w jakis sposob kolorowi) a nastepnie interpolowanie koloru pomiedzy wczytanymi punktami na powierzchni. Z gory dziekuje za odpowiedz
lechoo Napisano 21 Lipiec 2005 Napisano 21 Lipiec 2005 Jesli punkty nie sa rozmieszczone chaotycznie, to nie jest to skomplikowane. W najprostszym przypadku moznaby nawet stworzyc plane'a o liczbie vertexow odpowiadajacej liczbie punktow w pliku. Potem wystarczyloby wczytywac wysokosci punktow z kolejnych plikow. Co do koloru to moznaby dane przerobic na bitmape i zmapowac ja na obiekt a max sam juz sobie to zinterpoluje albo przypisac kolory do poszczegolnych vertexow i wtedy rowniez max wyliczy interpolacje.
gonre Napisano 21 Sierpień 2005 Napisano 21 Sierpień 2005 Hei, z calą pewnościa taką wizualizacje mozna zrobic! Odnosnie interpolacji koloru to nie mam nic podręką, ale za to mam wczytywanie danych: Ważny jest format! Dla tego przykladu (była to animacja planet) kazdy wiersz to były dane dla danej klatki, a wartosci róznych parametrów oddzielone średnikami. 1. FORMAT Przykład jednej linii, gdzie najpierw była klatka, następnie pozycja,prędkość i radius i może jeszcze coś... 22;-4.75169;53.1899;...tu rzędy cyfr i średniów...;8.22006;0.0; 2. EXPORT Najperw exportowalem, potem obrabialem potem importowalem, wiec po kolei Export: on B_Export pressed do ( Export_nazwa = GetSaveFileName types:"Plik textowy (*.txt)|*.txt|Dowolny typ|*.*|" if (Export_nazwa != undefined) then ( Export_plik = createfile Export_nazwa for ex=1 to List_Planet_Count do ( format("%;%;%;%;") Planety[ex].Nazwa Planety[ex].PozX Planety[ex].PozY Planety[ex].PozZ to:Export_plik format("%;%;%;%;%;\n") Planety[ex].Masa Planety[ex].Srednica Planety[ex].VoX Planety[ex].VoY Planety[ex].VoZ to:Export_plik ) close Export_plik ) ) 2. IMPORT z pliQ Czyli to o co biega on B_Import pressed do ( Import_nazwa = GetOpenFileName types:"Plik textowy *.txt|*.txt|Dowolny typ|*.*|" format("%\n") Import_nazwa if (Import_nazwa != undefined) then ( Import_plik = openFile Import_nazwa if (Import_plik != undefined) then ( LiniaIN = readLine Import_plik LiniaArray = filterString LiniaIN ";" KlatekIN = LiniaArray[1] KulekIN = LiniaArray[2] KuleINnazwy = execute LiniaArray[3] KuleNodeArray=#() for j=1 to KuleINnazwy.count do ( nodetmp = execute ("$"+ KuleINnazwy[j] as string) if nodetmp == undefined then ( nodetmp = sphere radius:22 name:(KuleINnazwy[j] as string) nodetmp.wireColor = ( (color 190 170 50 ) + (random -30 60) ) ) append KuleNodeArray nodetmp ) LiniaIN = readLine Import_plik LiniaArray = filterString LiniaIN ";" for k=1 to KulekIN as integer do ( if KuleNodeArray[k] != undefined then ( KuleNodeArray[k].radius = LiniaArray[k] as float ) ) animate on ( while not eof Import_plik do ( LiniaIN = readLine Import_plik LiniaArray=filterString LiniaIN ";" at time ((LiniaArray[1]as integer) as time) ( for i=1 to (KulekIN as integer) do ( KuleNodeArray.pos.x = LiniaArray[(i-1)*3+1] as float KuleNodeArray.pos.y = LiniaArray[(i-1)*3+2] as float KuleNodeArray.pos.z = LiniaArray[(i-1)*3+3] as float ) ) ) )--animate off close Import_plik )--- Import_plik != undefined then FIN )--- import nazwa != undefined then FIN ) To jest wersja dla jednego pliku w którym w liniach są wypisane dane, ale można w pętli zrobić wczytanie z serii plików, jeżeli są nazwami jakoś usystematyzowane! Nie wiem czy pytanie jest nadal aktualne (bo to post z przed miesiąca), wiec nie bede tego obrabial, kopiuje żywcem. Dla zwiekszenia czytelnosci by przydało się nad tym posiedzieć, jeśli zajdzie taka potrzeba mogę to przeedytowac. Pytania (lub prośby) wraz z listem motywacyjnym ;) słać na [email protected]
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ę