Processingのサンプルを参考にコードを書いた。(立方体: 回転、拡大、照明の調整)

改良点

マウスを右にドラッグすることで、立方体が明るくなります。マウスを左にドラッグすることで、立方体が暗くなります。
"0.25"の値を変えることで、増加の割合を調節できます。

valuex += (mouseX-pmouseX)*0.25;

表現の軸

現時点では、以下のような「表現の軸」と呼べるようなものがあります。

1. マウスの縦方向の移動による、立方体の辺の長さに関する軸。
2. マウスの横方向の移動による、立方体の回転速度に関する軸。
3. マウスの横方向のドラッグ操作による、照明の光の強さに関する軸。

このマウスというインターフェースが生み出す「表現の軸」について、考えていきたいと思います。



コード

PImage tex;
float rotx = PI/4;
float roty = PI/4;
int valuex = 0;
int valuey = 126;

void setup() 
{

  size(809, 500, P3D);
  tex = loadImage("01.JPG");
  textureMode(NORMALIZED);
  fill(255);
  stroke(color(44,48,32));
}

void draw() 
{
  int ColorValue = #dddddd;
  background(ColorValue);
  noStroke();
  directionalLight(valuey, valuey, valuey, 0, 0, -1);
  ambientLight(10+valuex, 10+valuex, 10+valuex);
  translate(width/2.0, height/2.0, -100);
  rotateX(rotx);
  rotateY(roty);
  scale(90);
  TexturedCube(tex, 1+mouseY * 0.002, 1);
  autorotate();
}

void autorotate()
{
  float rate = 0.01;
  float speed = mouseX * 0.02;
  rotx += speed * rate;
  roty += speed * rate;;
}

void NoTexturedCube(float i, int type) {
  beginShape(QUADS);
  CubeFace c1 = new CubeFace();
  
  if(type == 1){
    c1.PZface(i);
    c1.MZface(i);
    c1.BYface(i);
    c1.TYface(i);
    c1.RXface(i);
    c1.LXface(i);
  }
  else if(type == 2){ 
    c1.PZface(i);
    c1.BYface(i);
    c1.RXface(i); 
  }
  else{
    c1.MZface(i);
    c1.BYface(i);
    c1.LXface(i);
  }
  
  endShape();
}

void TexturedCube(PImage tex, float i, int type) {
  beginShape(QUADS);
  texture(tex);
  
  CubeFace c1 = new CubeFace();
  
  if(type == 1){
    c1.PZface(i);
    c1.MZface(i);
    c1.BYface(i);
    c1.TYface(i);
    c1.RXface(i);
    c1.LXface(i);
  }
  else if(type == 2){ 
    c1.PZface(i);
    c1.BYface(i);
    c1.RXface(i); 
  }
  else{
    c1.MZface(i);
    c1.BYface(i);
    c1.LXface(i);
  }
  
  endShape();
}

class CubeFace {
  void PZface(float i) {
   vertex(-i, -i,  i, 0, 0);
   vertex( i, -i,  i, i, 0);
   vertex( i,  i,  i, i, i);
   vertex(-i,  i,  i, 0, i);
 }

 void MZface(float i) {
  vertex( i, -i, -i, 0, 0);
  vertex(-i, -i, -i, i, 0);
  vertex(-i,  i, -i, i, i);
  vertex( i,  i, -i, 0, i);
 }

 void BYface(float i) {
  vertex(-i,  i,  i, 0, 0);
  vertex( i,  i,  i, i, 0);
  vertex( i,  i, -i, i, i);
  vertex(-i,  i, -i, 0, i);
 }

 void TYface(float i) {
  vertex(-i, -i, -i, 0, 0);
  vertex( i, -i, -i, i, 0);
  vertex( i, -i,  i, i, i);
  vertex(-i, -i,  i, 0, i);
 }

 void RXface(float i) {
  vertex( i, -i,  i, 0, 0);
  vertex( i, -i, -i, i, 0);
  vertex( i,  i, -i, i, i);
  vertex( i,  i,  i, 0, i);
}

 void LXface(float i) {
  vertex(-i, -i, -i, 0, 0);
  vertex(-i, -i,  i, i, 0);
  vertex(-i,  i,  i, i, i);
  vertex(-i,  i, -i, 0, i);
 }
}

void mouseDragged(){
  valuex += (mouseX-pmouseX)*0.25;
}