如何使用三角函数 p5js 旋转圆弧?
How to rotate an arc using trigonomentry p5js?
我想用三角函数创建一个旋转圆弧,没什么特别的,只是让它围绕中心点旋转,就好像它是一个完整的旋转圆圈切成两半。我现在正在做的结果是一个时髦的吃豆人,而我希望它保持半圆形。
let angle = 0;
function setup() {
createCanvas(500, 500);
angleMode(DEGREES);
}
function draw() {
background(200);
let posX = 250;
let posY = 250;
let sizeW = 250;
let sizeH = 250;
let radius = 125 //I don't know what to put as my radius
let x = radius * cos(angle);
let y = radius * sin(angle);
fill(0);
arc(posX, posY , sizeW, sizeH, 270 + x, 90 + y);
angle++;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.js"></script>
您不需要任何三角函数,因为 arc()
函数会为您处理。您只需要根据 angle
的当前值使弧的起始和结束角度发生变化。要获得半圆形形状,您需要从 angle
开始顺时针 ~90 度的弧,并从 angle
.
逆时针结束 ~90 度的弧
const posX = 250;
const posY = 250;
const sizeW = 250;
const sizeH = 250;
const radius = 125;
let angle = 0;
function setup() {
createCanvas(500, 500);
angleMode(DEGREES);
}
function draw() {
background(200);
fill(0);
arc(posX, posY , sizeW, sizeH, angle + 90, angle - 90);
angle++;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.js"></script>
我想用三角函数创建一个旋转圆弧,没什么特别的,只是让它围绕中心点旋转,就好像它是一个完整的旋转圆圈切成两半。我现在正在做的结果是一个时髦的吃豆人,而我希望它保持半圆形。
let angle = 0;
function setup() {
createCanvas(500, 500);
angleMode(DEGREES);
}
function draw() {
background(200);
let posX = 250;
let posY = 250;
let sizeW = 250;
let sizeH = 250;
let radius = 125 //I don't know what to put as my radius
let x = radius * cos(angle);
let y = radius * sin(angle);
fill(0);
arc(posX, posY , sizeW, sizeH, 270 + x, 90 + y);
angle++;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.js"></script>
您不需要任何三角函数,因为 arc()
函数会为您处理。您只需要根据 angle
的当前值使弧的起始和结束角度发生变化。要获得半圆形形状,您需要从 angle
开始顺时针 ~90 度的弧,并从 angle
.
const posX = 250;
const posY = 250;
const sizeW = 250;
const sizeH = 250;
const radius = 125;
let angle = 0;
function setup() {
createCanvas(500, 500);
angleMode(DEGREES);
}
function draw() {
background(200);
fill(0);
arc(posX, posY , sizeW, sizeH, angle + 90, angle - 90);
angle++;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.js"></script>