Newsgroup: it.comp.grafica
Titolo: Come girare una ruota col movimento in avanti (Per jena e non solo)

Come oggetto è un pò ambiguo, cmq è per rispondere ad un msq di jena di
qualche giorno fà..
Prima di tutto si deve conoscere il raggio della ruota.
Quindi si crea un dummy come rifermimento per il movimento della ruota.
Si seleziona la ruota, si ma in Motion-Assign controller e si assegna un
controller Euler XYZ alla rotazione.
Si preme sul + per evidenziare i 3 assi di rotazione.
si seleziona l'asse Y e gli si assegna un controller Float Expression
Si seleziona il controller appena assegnato col tasto destro e si entra in
proprietà.
Nella casella name si mette il nome di una variabile che indicherà il valore
di rotazione della ruota, esempio xpos
si seleziona Vector al posto di scalar e si preme create.
a questo punto si attiva il tasto Assign to Controller.
Si preme e si assegna il controller al dummy nella tyraccia
Position: Bezier Position.
A questo punto nella casella grande denominata Expression si scrive la
seguente espressione:
xpos.x/(2*pi*raggio)
dove raggio indica il raggio della ruota..
si preme su close.
adesso la ruota gira non appena muoviamo il dummy lungo l'asse X. ma non
avanza..
per farla avanzare si deve scrivere un'altra espressione nel controller di
posizione della ruota..non si può linkare al dummy altrimenti non funziona
nulla.
Cmq è semplicissimo...
Selezionando la traccia Position della ruota, gli si assegna il controller
Position Expression
lo si seleziona col tasto destro e si entra di nuovo in proprietà.
Adesso si deve creare 3 variabili, una per ogni asse di movimento e tutte e
tre devono essere vettori assegnate al dummy come in precedenza.
le tre variabili possono essere choiamate posx, posy,posz ad esempio.
ogni volta che se ne crea una si assegna al dummy alla stessa tyraccia a cui
abbiamo assegnato il controller della rotazione.
fatto questo, nella casella espressione si scriverà:
[ posx.x,poy.y,posz.z ]
si preme close.
se è stato fatto tutto in odo corretto, spostando il dummy, si sposterà pure
la ruota segiuendolo fedelmente e in tutte le direzioni, ma la rotazione
avverrà solo se il dummy si sposta in avanti o indietro lungo l'asse x.
Assegnando il dummy ad un percorso accidentato, è possibile simulare il
movimento della ruota lungo un percorso sconnesso e impostare anche un
sistema di sospensioni, ma no mi dilungo oltre o finisco lo spazio a
disposizione per le New..:)..
Ciao e spero di essere stato chiaro..per problemi contattaemi in mail o
quì,,,ciao

 quì,,,ciao
beh, grazie dell' aiuto!! Devo animare una piazza di Roma con tante
macchine...ti puoi immaginare il risparmio di fatica !!!!
bye, Jena

 macchine...ti puoi immaginare il risparmio di fatica !!!!
bastava che riprendevi la piazza durante l'ultimo dell'anno, anche se più
che camminare le auto stavano ferme :DDD...
Ciao

>disposizione per le New..:)
No, no, dilungati!!! :-) La cosa e' assai interessante!!!
\\____ Alessandro "JonVon" Vannini - 
a.vanniniATmclink.it
 
http://www.mclink.it/personal/MC7872/index.html

ho fatto il tutorial di Duke (che ringrazio) sul mio MAX 2.0 (evabbé...)
- secondo me (considerando anche i problemi avuti da Alessandro)
l'equazione da assegnare alla Float Expression del controller YRotation è
xpos.x/(100) e non xpos.x/(2*pi*raggio)
- l'equazione di Jena mi sembra corretta
- il link ruota-dummy funziona
- non funziona invece il sistema proposto da Duke: tutto bene la prima
parte (controller Euler XYZ, controller Float Expression, tiro il dummy e
la ruota gira), quando invece assegno il controller Position Expression (e
in particolare quando lego lo spostamento x della ruota a quella del dummy
con l'espressione posx.x) la rotazione della ruota al trascinamento del
dummy risulta bloccata (mente l'operazione trascinamento risulta pienamente
riuscita)
--
ciao, Michele
se usi Outlook e rispondi R: e non RE:, patch:
http://utenti.tripod.it/vene/mail/patch.html
primo passo nel mondo NG: it.faq
per le prove: it.test

 No, no, dilungati!!! :-) La cosa e' assai interessante!!!
vedrò di scriverlo allora..se ci sarà richiesta..))..cmq è più semplice di
quello che sembra...
è lungo ma semplice

 riuscita)
ti sbagli..funziona perfettamente..
il problema di alessandro si risolve semplicemente moltiplicando per 6 il
risultato dell'espressione, quindi sarà..
(xpos.x/(2*pi*raggio))*6
non capisco perchè, ma con i solidi funziona così..boh..
tu invece stai sbagliando, nel senso che nel controller di posizione della
ruota non devi usare xpos.x soltanto ma uno per ogni asse..
fai così, creati una variabile di nome RUOTA nel controller di movimento
della ruota e assegnala al dummy
adesso scrivi questa espressione
[ ruota.x, ruota.y,ruota.z]
premi Evaluate o close e prova a spostare il dummy...è matematico che
funziona
forse non ho capito il link, ma a me non funziona..
ci vorrebbe la possibilità di andare in multichat magari con video così
potrei dimostrarlo..
ciao

 xpos.x/(100) e non xpos.x/(2*pi*raggio)
corrige
xpos.x/(raggio)


 ciao
ciao


 [ posx.x,posy.y,posz.z ]
Data l'ora stavo dormendo :))..
non importano 3 variabili..avevo fatto casino..come al solito..
mi è passato che quando assegni un controller alla posizione che non sia
euleriano, puoi selezionare il valore di un asse semplicemente mettendo il
nome dell'asse dopo la variabile..
una dimenticanza insomma..
ciao

>i controller?
No, ho creato la ruota senza usare Scale. Pero' mi viene in mente che la 
mia ruota e' fatta non da una semplice primitiva (tu forse hai usato 
Cylinder), ma e' piuttosto complessa, ho fatto un pneumatico, il 
cerchione con i raggi, il mozzo, una decorazione per il mozzo, ecc. ecc.; 
tutti oggetti che poi ho riunito in un group.
Lavoro all'ufficio complicazione affari semplici, io :-)))))))
In ogni caso, l'oggetto piu' esterno e' il torus utilizzato per il 
pneumatico, che ha raggio esterno pari a 90.



no ha importanza, basta il raggio esterno..
devi moltiplicare il risultato per 6..o come ha detto Michele cambiare la
formula in xpos.x/raggio
non ho ancora capito perchč deve funzionare bene cosě..boh, forse fa la
trasformazione da movimento a rotazione da solo dato che si sposta il valore
da un controller di movimento ad uno di rotazione...boh...
I misteri della vita..:))
Ciao..

 wrote in message 855l3i$9bq$1...@news.mclink.it...



direi che hai ragione..
allora ho sbagliato espressione la prima volta perchč ragionavo in
gradi...non ho tenuto conte dei radianti.:)..
tenghiu prof :))...ora tutto ha un senso :DD
ciao