Processing

PythonでProcessing Lights, Camera Coordinates screenX() / screenY() / screenZ()

3次元のX、Y、Zの位置を受け取り、(2次元の)スクリーン上に表示されるX/Y/Zの値を返します。


def setup():
  size(500, 500, P3D)

def draw():
  background(204)
  
  x = mouseX
  y = mouseY
  z = -100
  
  # z = -100で "X" を描く
  stroke(255)
  line(x-10, y-10, z, x+10, y+10, z)
  line(x+10, y-10, z, x-10, y+10, z) 
  
  # z = 0に灰色の線を引く
  # xの値。視差に注意
  stroke(102)
  line(x, 0, 0, x, height, 0)
  
  # z = 0の位置に黒線を引いて合わせる 
  # z = -100に描かれたx値要素 
  stroke(0)
  theX = screenX(x, y, z)
  line(theX, 0, 0, theX, height, 0)