|
Davide.Gadia |
Professore
Registered: Oct 2005
Posts: 339 (0.05 al dì)
Location:
Corso:
Anno:
Time Online: 5 Days, 0:28:38 [...]
Status: Offline
Edit | Report | IP: Logged |
Re: get e vettori
Originally posted by rob87
Ciao!
ho fatto ampio uso dei vettori, rifacendo tutti gli esercizi sui vari moti con l'uso della classe PVector.... le formule che ho usato sono state
vel.add(acc)
pos.add(PVector.mult(vel, dir))
e per invertire la direzione dir.mult(-1)
è corretto fare questo utilizzo dei metodi?
quello che non mi è chiaro è l'uso del get, ovvero perchè non è corretto fare una semplice assegnamento tra vettori invece di utilizzare get?
So che a lezione è stato ripetuto più volte di usare il get, per estrarre le componenti e fare un assegnamento, ma non capisco la causa... lo chiedo per capire quando è necessario il get, oltre che per l'assegnamento, ovvero:
pos.add(PVector.mult(vel, dir))
o
pos.add((PVector.mult(vel, dir).get())??
E poi anche in tutti i costruttori dei sistemi particellari, il codice non fa ciò che dovrebbe facendo un semplice this.origin = origin.. cosa viene copiato con questo tipo di assegnamento?... anche pensando a java non mi viene in mente molto, nel senso che gli oggetti sono uguali, anche se dovesse semplicemente copiare il puntatore i dati avrebbero la stessa struttura, no??
grazie!
ps: c'è un modo per vedere il codice delle varie funzioni di processing?
vel.add(acc)
pos.add(PVector.mult(vel, dir))
mi sembra corretto
-----------------------------
l'utilizzo di get() e' necessario soprattutto quando voglio un vettore che sia una copia di un altro, quando passo i vettori come parametri di funzioni\metodi
quindi
this.origin = origin.get();
prende i valori di origin (parametro) e li copia in this.origin (l'attributo origin della classe)
this.origin = origin;
non fa una copia e il sistema da' problemi.
Se nella stessa funzione ho:
PVector a = new PVector(1,1);
allora
PVector b = a;
e
PVector b = a.get();
dovrebbero andare bene entrambe.
Per non far confusione tra i casi, abbiamo insistito sull'uso della get(), che va bene sempre.
Negli altri casi, la get() non serve, perche' lei ha già vettori dichiarati come tali, e usa metodi (come add(..)) che ritornano un vettore.
Saluti,
Davide Gadia
|