VOOZH about

URL: https://processing.org/reference/modelz_

⇱ modelZ() / Reference / Processing.org


Reference+
DocumentationReferenceLights CameraCoordinates

Name

modelZ()

Description

Returns the three-dimensional X, Y, Z position in model space. This returns the Z value for a given coordinate based on the current set of transformations (scale, rotate, translate, etc.) The Z value can be used to place an object in space relative to the location of the original point once the transformations are no longer in use.

In the example, the modelX(), modelY(), and modelZ() functions record the location of a box in space after being placed using a series of translate and rotate commands. After popMatrix() is called, those transformations no longer apply, but the (x, y, z) coordinate returned by the model functions is used to place another box in the same location.

Examples

  • void setup() {
     size(500, 500, P3D);
     noFill();
    }
    
    void draw() {
     background(0);
     
     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();
    } 
    

Syntax

  • modelZ(x, y, z)

Parameters

  • x(float)3D x-coordinate to be mapped
  • y(float)3D y-coordinate to be mapped
  • z(float)3D z-coordinate to be mapped

Return

  • float