.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Laboratorio di multimedia I (http://www.dsy.it/forum/forumdisplay.php?forumid=376)
-- get e vettori (http://www.dsy.it/forum/showthread.php?threadid=38375)


Posted by rob87 on 12-05-2009 15:01:

get e vettori

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?


Posted by Davide.Gadia on 12-05-2009 16:11:

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


All times are GMT. The time now is 01:47.
Show all 2 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.