Я пытаюсь создать функцию, которая проверяет, нет ли столкновения / пересечения между кругом и периметром сектора круга.
Я собираюсь объяснить мою проблему более подробно:
1. У меня есть сектор круга, определенный центральной точкой (x1, y1), радиусом (r1) и углом (м)это говорит мне, где сектор круга начинается и заканчивается.
2. С другой стороны, у меня есть круг, определенный центральной точкой (x2, y2), радиусом (r2).
3. Ясоздание небольшой игры на холсте HTML5, в которой обе эти геометрические фигуры могут свободно перемещаться.
4. Проблема в том, что я хочу знать, сталкиваются ли эти два (сектор зеленого круга и зеленый круг) друг с другом.
Мой текущий код очень прост (поскольку я не могу придумать что-то, что может эффективно проверить столкновение).Он только проверяет столкновение между кругом, который определяет этот сектор круга, и другим кругом:
this.crashWith = function(otherobj) {
// "this" is the circle
// "otherobj" is the circle sector
var dx = this.x - otherobj.x;
var dy = this.y - otherobj.y;
var distance = Math.sqrt(dx * dx + dy * dy);
var crash = false;
if (distance < this.radius +otherobj.radius) {
crash = true;
}
return crash;
}
Примечание. Сектор круга (зеленого цвета) имеет ширину линии (как видно на изображении) иугол m изменяется (потому что круговой сектор вращается вокруг центра).
Я думаю, что правильным решением было бы то, что может вычислить столкновения, зная, что форма сектора круга не меняется (она только вращается).