Определите, какая точка находится слева от линии / точки после ее вращения

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

Сейчас у меня проблема с тем, чтобы заставить шейдер правильно настроить страны.

Страна всегда устанавливает страну 0 слева, а страну 1 справа - страны 0 и 1 устанавливаются программно.

Линия, граница, может быть между 0 и 359 градусами.

Как я нахожу страны 0 и 1, я рисую 3 точки слева и справа от средней точки линии, одну .01f, одну .1f и одну 1f от средних точек в каждом направлении, затем вращаю их вокруг средней точки, чтобы подходящее место.

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

На моей тестовой карте, близком к одинаково нарезанному восьмиугольнику, границы показывались правильно (после того, как я поменял местами страны 0 и 1, если угол был больше 90 и меньше или равен 180). Работал без изъянов, но на других картах работает не очень хорошо.

Все, кроме распределения по странам, работает хорошо, поэтому мне любопытно, если кто-нибудь знает о лучшем способе выяснить, какая точка находится слева или линия вращения, или о лучшем концептуальном способе справиться с этим.

Это выше, в основном, когда я делаю, красный цвет оставлен, а правый - синий, тогда я просто проверяю 3 разных места, затем взвешиваю левые и найденные права с четным / смещением в соответствующие страны (по одному на +/-. 01, другой в +/- .1 и третий 1, в случае четных / нечетных проблем округления с близостью).

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

Ответы на вопрос(1)

Ваш ответ на вопрос