Rotazione dei 3 assi

Mouse (posizione): rotazione degli assi X e Y Applicazione Java final float GAP=PI/6; final float asseMin=-PI-GAP, asseMax=+PI+GAP; int maxX, maxY; int Xc, Yc; float dim1, dim12, dim2; float asseX, asseY; void setup() { size(500, 500, P3D); frameRate(30); noStroke(); maxX=width; maxY=height; Xc=width/2; Yc=height/2; dim1=0.75*width; dim12=dim1/2; dim2=0.025*width; noLoop(); } void mouseMoved() { asseY = +map(mouseX, 0, maxX-1, … Leggi tutto

Rotazione di 3 cubi

Mouse (tasto): allontana i cubi Applicazione Java final int dim=100; boolean divisi=false; float XC, YC; float angolo=0, passo=0.03; void setup() { size(500, 250, P3D); frameRate(30); stroke(127); XC=width/2; YC=height/2; } void mousePressed() { divisi=true; } void mouseReleased() { divisi=false; } void draw() { background(255); angolo+=passo; pushMatrix(); translate((divisi)?(XC-dim):(XC), YC); rotateX(angolo); fill(255, 0, 0, 90); box(dim); popMatrix(); pushMatrix(); … Leggi tutto

Rotazione di 3 quadrati

Mouse (tasto): allontana i quadrati Applicazione Java final int dim=120; final int dim2=dim/2; boolean divisi=false; float XC, YC; float angolo=0, passo=0.03; void setup() { size(500, 250, P3D); frameRate(30); stroke(127); XC=width/2; YC=height/2; } void mousePressed() { divisi=true; } void mouseReleased() { divisi=false; } void draw() { background(255); angolo+=passo; pushMatrix(); translate((divisi)?(XC-dim):(XC), YC); rotateX(angolo); fill(255, 0, 0, 90); … Leggi tutto

Sfera e 4 cubi

Una sfera e 4 cubi incastrati nello spazio Applicazione Java size(500, 500, P3D); background(255); noStroke(); lights(); fill(0, 100, 200); pushMatrix(); translate(100, 100); box(120); popMatrix(); pushMatrix(); translate(400, 100); box(120); popMatrix(); pushMatrix(); translate(100, 400); box(120); popMatrix(); pushMatrix(); translate(400, 400); box(120); popMatrix(); fill(100, 200, 0); pushMatrix(); translate(250, 250,-100); sphere(200); popMatrix();

Orologio analogico 3D

Utilizza Mouse: attiva la finestra grafica LEFT – RIGHT: rotazione dell’asse y UP – DOWN: rotazione dell’asse x A – Z: rotazione dell’asse z SPACE: ritorna alla posizione standard. Applicazione Java float dimA=PI/100, PI6=PI/6, Xc, Yc, angoloX=0, angoloY=0,angoloZ=0, raggio, diametro; color blu, verde, rosso, grigio, grigio1, grigio2; Lancetta LS, LM, LH; float S, M, H; Ora[] LeOre=new Ora[12]; void setup() … Leggi tutto

Primitive 3D

Per disegnare figure in 3D, utilizzando il parametro z, è necessario prima utilizzare il parametro P3D oppure OPENGL in combinazione con size(). point() Disegna un punto nello spazio con la dimensione di un pixel. Il primo parametro è l’ascissa, il secondo l’ordinata e il terzo la profondità. Sintassi: point(x, y, z) line() Disegna una linea (un percorso diretto tra due punti) sullo … Leggi tutto

Trasformazioni

Le trasformazioni avvengono in funzione della posizione dell’oggetto rispetto all’origine. Le trasformazioni 3d richiedono l’uso del parametro P3D oppure OPENGL in combinazione con size(). Le trasformazioni si applicano a tutto quello che succede dopo la chiamata di una funzione e chiamate successive accumulano i loro effetti. Se una funzione è chiamata all’interno di draw(), la sua trasformazione … Leggi tutto

Modalità di rendering

Attualmente Processing ha quattro modalità di rendering. I programmi scritti con Processing possono essere renderizzati utilizzando le librerie di disegno 2D di Java un motore 3D personalizzato detto P3D attraverso OpenGL utilizzando l’interfaccia JOGL un motore 2D personalizzato detto P2D. La modalità di rendering è specificata attraverso la funzione size(). È stato fatto un grande sforzo per far apparire il linguaggio di … Leggi tutto