【发布时间】:2020-06-08 00:18:00
【问题描述】:
我正在尝试使对象以三角形的形状移动,但是在更改方向时遇到了一些麻烦。我一直在参考我的讲义,但我似乎无法改变我想要的。
function aniLoop(){
clear();
circlesUpdate(aC);
requestAnimationFrame(aniLoop)
}
function circlesUpdate(a){
for (var i = 0; i<a.length; i++){
circle(a[i]);
updateData(a[i]);
}
}
function circle(o){
ctx.beginPath();
ctx.arc(o.x, o.y, o.r, 0, 2*Math.PI);
ctx.fillStyle = "hsla("+o.c+", 100%, 50%, "+o.a+")";
ctx.fill();
}
function randn(r){
return Math.random()*r - r/2
}
function rand(r){
return Math.random()*r
}
我正在尝试制作一个圆环,以从画布大小的 w/2 和 h/5 开始在三角形中移动。
function createData(num){
for (var i = 0; i<num; i++){
aC.push({
x: w/2,
dx: randn(0),
y: h/5,
dy: 2+rand(3),
r: 50,
c: 200+rand(60),
a: 0.5,
})
}
}
function clear(){
ctx.clearRect(0, 0, w, h);
}
function updateData(o){
var i;
o.x += o.dx;
o.y += o.dy;
o.a -= o.da;
if(o.x > w || o.x < 0){
o.dx *= -1;
}
if(o.y > h || o.y < 0){
o.dy *= -1;
}
}
我知道该函数已设置为使圆圈从 w/2,h/5 开始向下移动然后反弹回来,但我不确定如何更改它以使圆圈沿三角形方向移动从上角到左下角到右下角再回到上角。
【问题讨论】:
标签: javascript html css canvas shapes