Lavorare con i vettori e le trasformazioni

0

Sto per scrivere un'applicazione grafica 2D che consente all'utente di creare poligoni e trasformarli attraverso la trasformazione come la rotazione e così via. Speravo che qualcuno potesse fornire argomenti pro e contro per le diverse scelte che avevo in mente. (È tutto in Java btw!)

a). Rappresenta i vettori riempiendo le matrici con numeri "reali". Ciò significa creare una matrice di dati che supporti la moltiplicazione, la trasposizione ecc.

b). Crea una propria classe vettoriale, in modo tale che io possa creare una classe matrice che supporti quei vettori.

    
posta user29163 21.09.2012 - 18:22
fonte

3 risposte

2

La mia preferenza personale (per il mio progetto personale) è di avere classi separate per matrici e vettori. Ciò consente al linguaggio di eseguire un po 'più di controllo della scrittura che se tutto fosse una matrice.

    
risposta data 21.09.2012 - 20:21
fonte
1

Per le trasformazioni 2D servono solo vettori a due tuple e una matrice 2x2. Entrambi sono banali da implementare. Cose come la matrice per la moltiplicazione vettoriale richiederebbero una formula a una riga piuttosto che un ciclo appropriato.

Poiché le matrici sono così piccole, penso che sarebbe più semplice memorizzare 4 numeri in una matrice e non una lista di vettori. Almeno proverei prima questo approccio. Se necessario, puoi accettare direttamente i vettori in un costruttore o in un metodo di produzione (ad es. Per creare una matrice di offset).

    
risposta data 21.09.2012 - 20:20
fonte
1

Sembra che tu abbia solo bisogno di

struct xy {float x; float y}

e

class affine_transformation
{
  float m[6];

  xy transform(xy input) {...}
  ...
  methods rotate(), shear(), scale(), translate()
};

Vedere link

    
risposta data 22.09.2012 - 04:47
fonte

Leggi altre domande sui tag