Come nell'esercizio 6 della lezione 4 usate il seguente metodo
void tr3d(double x[],double y[], double z[],int xp[],int yp[],int n){
double theta = 80,phi=130;
int nxc=300,nyc=300;
double rad = Math.PI/180.;
double scale=1.;
double t =theta*rad;
double p=phi*rad;
double ct =Math.cos(t);
double st =Math.sin(t);
double cp =Math.cos(p);
double sp =Math.sin(p);
double a,b,c;
for (int i=0;i < n;i++){
a=x[i]*scale;
b=y[i]*scale;
c=z[i]*scale;
xp[i] =(int)(a*sp-b*cp)+nxc;
yp[i]=nyc -(int)(ct*(a*cp+b*sp)+c*st);
}
}
per rappresentare oggetti 3D. In questo caso gli oggetti devono essere
prelevati ognuno da un file diverso dove sono memorizzati come in questo
esempio che rappresenta una casa:
14
1 0 0 13.5
2 4 0 13.5
3 4 3 13.5
4 2 4 13.5
5 0 3 13.5
6 0 0 7.5
7 4 0 7.5
8 4 3 7.5
9 2 4 7.5
10 0 3 7.5
11 1 0 13.5
12 2 0 13.5
13 2 2 13.5
14 1 2 13.5
8 5
1 5 1 2 3 4 5
2 5 6 7 8 9 10
3 4 2 7 8 3
4 4 3 8 9 4
5 4 6 1 5 10
6 4 10 5 4 9
7 4 1 2 7 6
8 4 11 12 13 14
Cioe' prima una lista di 14 punti e poi una lista di 8 poligonali che sono
al massimo di 5 punti ciascuno.
L'applet deve avere un menu' che permette di scegliere tra i file disponibili, deve rappresentare l'oggetto in 3D e poi permettere in qualche modo di ruotarlo.