Итак, я создал эллипсоид, но когда я пытаюсь его вращать, почти половина вокселей пропадает. Делаю ли я это с помощью матрицы вращения или с помощью матрицы переноса с одной базы на другую, я сразу начинаю терять пиксели. Если эллипсоид находится на 0 градусов, 90, 180 или 270, он выглядит хорошо. Но когда он проходит между этими углами, цвет фона начинает просвечивать сквозь маленькие дыры повсюду на моем объекте. Я предполагаю, что это какая-то проблема с преобразованием типа float в int, но я не знаю, как это исправить. У кого-нибудь есть идеи?
Причина, по которой это происходит, заключается в том, что при рисовании повернутой фигуры из-за округления / усечения координат несколько исходных пикселей отображаются на один и тот же целевой пиксель, что означает, что существуют целевые пиксели, которые не получают никакого значения.
Правильный способ сделать это состоит в том, чтобы взять все целевые пиксели и выполнить обратное преобразование, и собрать значение, которое должно быть в целевом пикселе. Потенциально занимаюсь некоторой интерполяцией.
Других решений пока нет …