我正在使用脚本根据它的半径在圆圈内生成随机粒子。接下来我要做的是检测粒子与圆边碰撞的时间。
我猜我需要使用for循环将圆周的坐标存储在一个数组中,但我不确定这需要什么数学运算。
以下是我从下面的答案中得到的结果。它似乎没有工作:
变量par是随圆移动的粒子,发射器包含x,y,圆的中心位置,而道具高度包含半径。
var fromC = Math.sqrt( (par.y-(emitters[i].y ) )^2 + (par.x- (emitters[i].x))^2);
if(fromC >= emitters[i].height){
par.vx *= -1;
par.vy *= -1;
}
提前致谢。
答案 0 :(得分:1)
问题在于您的square
操作,^
在javascript中不是强力操作符。
使用此:
var fromC = Math.sqrt( Math.pow((par.y - emitters[i].y), 2) + Math.pow((par.x - emitters[i].x), 2) );
if(fromC >= emitters[i].height){
par.vx *= -1;
par.vy *= -1;
}
答案 1 :(得分:0)
只计算点与圆心之间的距离(平方根((y2-y1)^ 2 +(x2-x1)^ 2)并与半径进行比较