04-06 トーラス(円環面)の回転

学習日

2025年7月22日

名前

樋口桜大

立方体のトーラス(円環面)[torus]を使って作る!

自分で作った図形(コードと画像)

✅ 例題 4-6-1

2つのトーラスを90度の角度で交差させ、鎖のように配置しよう!

コード

function setup() {
  createCanvas(400, 400, WEBGL);
}

function draw() {
  background(220)
  rotateX(frameCount * 0.01);
  rotateY(frameCount * 0.01);
  torus(60, 20);
  translate(60, 0); 
  rotateX(PI/2);
  torus(60, 20);
}

📷 実行結果

きれいにつながっているね!

✅ 練習問題 4-6-1

2つのトーラスを、それぞれ独立して回転させてみよう。
push() と pop() を使って、回転の影響を個別に分けるようにする。

たとえば…⇓

  • 1つ目のトーラス:ゆっくり回転(frameCount * 0.01
  • 2つ目のトーラス:速く逆方向に回転(-frameCount * 0.02

translate() を使って、2つを少し離して配置しよう。

用語の内容

push…「ここからはこの図形に対してだけ、命令を通しますよ」という意味。                         pop…‥「この命令を止めて、もとに戻しますよ」という意味。

コード

function setup() {
  createCanvas(400, 400, WEBGL);
}

function draw() {
  background(220);
  //1つ目の図形
  push();
  translate(0, 0);
  rotateX(frameCount * 0.01);
  rotateY(frameCount * 0.01);  
  torus(60, 20);
  pop();
  //2つ目の図形
  push();
  translate(60, 0);
  rotateX(PI/2);
  rotateX(-frameCount * 0.02);
  torus(60, 20);
  pop();  
}

📷 実行結果

片方は、XとYの両方が回転している、もう一つはXだけが回転している。

まとめ・感想

・pushとpopの命令の意味をしっかりと理解することで、一つ一つの図形を描くことが大切なんだと思った。

・3D描画で使った「変速」の命令を使って、トーラスの図形を様々に表せたのが面白かった。

・次はトーラスに色を付けてみたいと思った!

コメントする