Как я могу повернуть квадранты круга на определенный угол и определить Qs других углов? - PullRequest
0 голосов
/ 26 апреля 2020

Я не смог найти упоминания об этой проблеме, поэтому надеюсь, что это нормально.

Я пытаюсь определить, к каким квадрантам относится набор углов, с оговоркой, что квадранты всегда поворачивается на переменный угол в каждом конкретном случае.

Если бы квадранты были определены так же, как квадранты, то решение было бы относительно простым, поскольку угловые интервалы хорошо установлены.

Однако как это можно сделать, когда квадранты вращаются? Численное переопределение квадрантов, кажется, приводит ко всем видам конкретных проблемных случаев (например, у каждого из квадрантов теперь должна быть функция, которая сбрасывает его, чтобы определить интервалы, которые включают сдвиг назад к 0 градусам), и я думаю, Я упускаю что-то, что сделало бы это намного проще.

Чтобы решить эту проблему, в идеале мне нужно было бы использовать только угол поворота квадранта и углы, которые, как я знаю, определены внутри круга, но я также мог бы при необходимости используйте координаты точки (я думаю, что atan2 поможет в решении последней, но я бы хотел этого избежать).

Изображение для визуализации

A : Единица окружности

B / C: Единица окружности повернута с оранжевым углом, определяющим среднюю точку Q1, с голубыми углами, которыми я хочу определить распределение, то есть B: 1 в Q1 1 в 4 квартале; C: 1 в 3 квартале, 1 в 4 квартале.

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 26 апреля 2020

Просто возьмите значение смещения, чтобы вычислить квадранты.

Q1 = 0° - 89°
Q2 = 90° - 179°
Q3 = ... 

Чтобы вычислить, в каком квадранте находится линия, вы просто делите этаж. quadrant = (angle + offset) // 90

Возвращает 0 для Q1, 1 для Q2 и т. Д. c. Смещение - это вращение круга по часовой стрелке.

...