shusha niederberger
YaBB Newbies
Offline
Posts: 2
Re: I don't think modelX/Y/Z works. Tell me I'm wr
Reply #3 - Jan 2nd , 2009, 6:30pm
unfortunately i think you are right. i found a bug-ticket for this issue for release 135 (http://dev.processing.org/bugs/show_bug.cgi?id=486), saying its fixed. but in version 1.01 it works only when NOT using camera(). but I need them both. any idea? (apart of tracking them all manually...) below modified code form the API documentation: // sh: camera vars float ang = 0; int max = 360; void setup() { size(500, 500, P3D); noFill(); } void draw() { background(0); // sh - added code // rotate camera float ra = 1500; float posX; float posY = -900; float posZ; float centX = 0; float centY = 130; float centZ = 0; posX = sin( radians(ang) ) * ra; posZ = cos( radians(ang) ) * ra; camera(posX, posY, posZ, centX, centY, centZ, 0, 1, 0 ); ang += 0.05; ang = ( ang > max ) ? 0 : ang; // sh - end added code // code from API documentation pushMatrix(); // start at the middle of the screen translate(width/2, height/2, -200); // some random rotation to make things interesting rotateY(1.0); //yrot); rotateZ(2.0); //zrot); // rotate in X a little more each frame rotateX(frameCount / 100.0); // offset from center translate(0, 150, 0); // draw a white box outline at (0, 0, 0) stroke(255); box(50); // the box was drawn at (0, 0, 0), store that location float x = modelX(0, 0, 0); float y = modelY(0, 0, 0); float z = modelZ(0, 0, 0); // clear out all the transformations popMatrix(); // draw another box at the same (x, y, z) coordinate as the other pushMatrix(); translate(x, y, z); stroke(255, 0, 0); box(50); popMatrix(); }