旋转一个内有圆圈的正方形,圆圈顶部有圆点

时间:2014-07-23 15:52:40

标签: rotation processing processing.js

好的家伙这是场景,在这张照片中有一个盒子,盒子里面有一个圆圈。现在你可以看到圆圈顶部和盒子的四个角有四个点。这些点实际上是椭圆形。借助于点,我们可以重塑图像。现在我想做的是围绕它的中心添加旋转,即圆圈和盒子的旋转。旋转的问题是点位于圆的顶部,并且在旋转时需要保持它们的位置,并且其他角也指向。如何做到这一点?

Conceptual Diagram

1 个答案:

答案 0 :(得分:3)

您可以使用rotate()将变换应用于坐标矩阵。

像:

void setup() {
  size(300, 300);
  rectMode(CENTER);
  ellipseMode(CENTER);
}
void draw() {
  background(255);

  //using frame count to rotate
  float a = radians(frameCount%360);

  // move coordinates so you can draw at origin
  // rotates always use origin as axis
  translate(width/2, height/2);

  //clockWise
  rotate(a);
  //counterClockWise
 // rotate(-a);
  noFill();
  rect(0, 0, 100, 100);
  ellipse(0, 0, 100, 100);

  ellipse(-50, 0, 4, 4);
  ellipse(0, -50, 4, 4);
  ellipse(-50, -50, 4, 4);
  ellipse(0, 50, 4, 4);
  ellipse(50, 0, 4, 4);
  ellipse(-50, 50, 4, 4);
  ellipse(50, 50, 4, 4);
  fill(255, 0, 0);
  ellipse(50, -50, 4, 4);
}

有关2D变换的精彩教程:

http://processing.org/tutorials/transform2d/