Так что я буду честен со всеми вами. С тех пор как закончилась старшая школа, и у меня был год от школы, много математики исчезло. Я создаю это колесо рулетки для страницы, которую я делаю в данный момент, и теперь я должен вычислить победителя, с которого останавливается мяч.
Мяч имеет позицию
x = Math.cos(alpha) * radius;
y = Math.sin(alpha) * radius;
Где каждый срез колеса нарисован следующим образом.
var slice = {startAngle: deg2rad(deg), stopAngle: deg2rad(deg+sliceDeg), deg: deg};
ctx.arc(centerX, centerY, width/2, slice.startAngle, slice.stopAngle);
Где ломтики нарисованы следующим образом
function drawAll(){
ctx.clearRect(0, 0, width, width); //Clear the canvas
for(var i=0; i < locations.length; i++){
drawSlice(deg, color[i]);
deg += sliceDeg;
}
}
Итак, что я в основном пытаюсь понять, так это то, как я должен проверять, в каком из срезов граничит шарик, когда он останавливается. Мой тезис заключается в том, что я должен проверить это следующим образом.
Если угол шара (альфа) находится в пределах угла, созданного срезами [i] .startAngle и - || -.stopAngle. Получить этот кусок и предупредить этот элемент. В основном я теряюсь, когда мне нужно сравнить радианы, в которых представлен срез, с позициями x и y, в которых представлен шар. Вся помощь очень ценится.