расчет угловых расстояний через квадрат - PullRequest
0 голосов
/ 12 февраля 2020

Учитывая точку в квадрате, мне нужно вычислить, как далеко эта точка проходит через квадрат (0% прогресса на одном конце, 100% на другом). Для простых горизонтальных (или вертикальных) обходов прогресс - это просто X-координата (или Y-координата), деленная на размер квадрата.

Но вот где я борюсь: мне нужно, чтобы обход был под углом, так что несколько (градусов? радианы?) либо наклоняются вверх, либо вниз. Если это помогает: все точки с совпадающими значениями «прогресса» должны образовывать линию, перпендикулярную пути / углу обхода.

Мне нужно написать такой метод (почти любой язык), который возвращает значение между 0 и 1:

float calculateProgress(float x, float y, float size, float angle) { }

... но не уверен, с чего начать.

Любая помощь очень ценится!

Редактировать / Добавлено Описание: для квартиры / горизонтальный обход, точки, которые сообщают о "50% прогрессе", будут образовывать вертикальную линию в середине квадрата. Но поверните немного против часовой стрелки, я хочу, чтобы те же самые точки (теперь повернутые, чтобы сформировать наклонную линию) сообщали о «50% -ом прогрессе», хотя верхняя половина теперь слева от размера x / size, а нижняя половина теперь право на х / размер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...