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