Skocz do zawartości
View in the app

A better way to browse. Learn more.

Max3D.pl

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

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
  • Wyświetleń 2k
  • Created
  • Ostatniej odpowiedzi

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

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.