📜  p5 播放中的旋转 - Javascript (1)

📅  最后修改于: 2023-12-03 14:45:00.098000             🧑  作者: Mango

P5 播放中的旋转 - Javascript

P5 是一种基于 JavaScript 的创意编码库,它可以帮助开发者创建艺术作品、交互式图形和动态图像等等。其中,旋转是在 P5 中常用的一种动画效果,可以用于创建旋转的图形和动画。

实现旋转的函数

在 P5 中,可以使用 rotate() 函数来实现旋转效果。这个函数包含一个参数,表示旋转的角度,单位是弧度(radian)。在函数调用后,P5 中所有的图形都会被旋转。

下面是一个简单的使用 rotate() 函数的例子:

var angle = 0;

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

function draw() {
  background(220);
  translate(200, 200);  // 将坐标系移到画布中心
  rotate(angle);        // 旋转角度
  rectMode(CENTER);     // 使用中心点对齐模式
  rect(0, 0, 100, 100); // 画矩形
  angle += 0.05;         // 每次增加旋转角度
}

这里我们定义了一个 angle 变量表示旋转角度,将画布中心进行平移,然后在 draw() 函数中不断改变 angle 变量,从而实现了不断旋转的效果。

需要注意的是,rotate() 函数会影响到之后的所有图形绘制。所以如果你想让某个图形不旋转的话,需要在绘制前使用 push()pop() 函数来保存和恢复画布的状态:

// 绘制不旋转的矩形
push();           // 保存画布状态
rotate(-angle);   // 取负数,取消旋转
rect(0, 0, 100, 100);
pop();            // 恢复画布状态
旋转的应用场景

旋转效果在 P5 中可以用于实现很多有趣的效果,比如:

  • 旋转的粒子效果
  • 旋转的 3D 立方体
  • 旋转的文本标签

等等。

以下是其中一个例子,演示了如何创建一个旋转的 3D 立方体:

var angleX = 0;
var angleY = 0;
var boxSize = 100;

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

function draw() {
  background(220);
  rotateX(angleX);
  rotateY(angleY);
  box(boxSize);
  angleX += 0.02;
  angleY += 0.03;
}

这里我们使用 WEBGL 模式来创建画布,然后利用 rotateX()rotateY() 函数实现了立方体的旋转效果。改变 angleXangleY 变量的值,即可控制立方体的旋转速度和方向。

总结

通过 rotate() 函数,我们可以在 P5 中实现简单和复杂的旋转效果。结合其他图形和动画效果,可以创建出非常有趣和炫酷的艺术作品和交互界面。有了基础的旋转知识,你可以进一步发掘 P5 的编程魅力。