我想得到一个圆弧的百分比半径(圆圈)。
这个想法是,在画布上的click事件中,找到与点击点碰撞的元素。我做到了,找到碰撞的元素没有问题。
我想计算一个元素的类型是否为圆形,计算从弧心到外部的碰撞百分比。
以下代码用于碰撞检测。
if(element.type == "circle") { // circle detection
let dx = x - element.left,
dy = y - element.top,
dist = Math.abs(Math.sqrt(dx * dx + dy * dy));
if (dist <= element.width / 2) {
collision = {
hitTo: // calculate percentage???,
object: element
};
}
}
我不知道该怎么做。你能帮忙吗?
答案 0 :(得分:1)
确保您从圆心(而不是左上角)有x和y位置,然后您可以使用反正切三角函数计算百分比。
var x = 0.5;
var y = 0.5;
var angle = Math.atan(y/x);
var percentage = 100 * angle / (2 * Math.PI);
console.log("Percentage: ", percentage);
例如,将x和y都设置为0.5,您将获得等于12.5的百分比