當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Processing modelX()用法及代碼示例


Processing, modelX()用法介紹。

用法

  • modelX(x, y, z)

參數

  • x (float) 要映射的 3D x 坐標
  • y (float) 要映射的 3D y 坐標
  • z (float) 要映射的 3D z 坐標

返回

  • float

說明

返回模型空間中的三維 X、Y、Z 位置。這將根據當前的一組變換(縮放、旋轉、平移等)返回給定坐標的 X 值。一旦變換完成,X 值可用於將對象放置在相對於原始點位置的空間中不再使用。



在該示例中,modelX()modelY()modelZ() 函數記錄了使用一係列平移和旋轉命令放置框後在空間中的位置。調用popMatrix() 後,這些轉換不再適用,但模型函數返回的(x, y, z) 坐標用於將另一個框放置在同一位置。

例子

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();
} 

有關的

相關用法


注:本文由純淨天空篩選整理自processing.org大神的英文原創作品 modelX()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。