Skocz do zawartości

Rekomendowane odpowiedzi

Napisano

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

  • Odpowiedzi 3
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Top Posters In This Topic

Napisano

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.

Napisano

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]

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ę



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności