Применить матрицу преобразования к кругу - PullRequest
0 голосов
/ 07 апреля 2011

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

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

Мой круг определяется позицией центра и радиусом.Проблема заключается в том, что, поскольку круг определяется только одной точкой, операция масштабирования матрицы приведет к тому, что круг просто переводится, а не масштабируется.

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

Есть ли лучший / более простой способ преобразования круга с использованием матриц преобразования?

1 Ответ

1 голос
/ 07 апреля 2011

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

...