3D трохи з моєї глибини. Якби це було 2D, я б вибрав співвідношення пікселів у поворотному зображенні таким чином, що відношення частоти дискретизації приблизно дорівнює швидкості, з якою ви перетинаєте лінії сканування на вихідному зображенні.
Я складаю це, коли я йду разом, тож дозвольте спочатку зробити приклад:
Припустимо, мої пікселі мають ширину 16 одиниць та висоту 1 одиницю. Скільки б я не обертався, я хотів би, щоб пікселі мали площу близько 16 одиниць. Якщо я обертаюсь на , я хотів би мої нові пікселі 1x16. Якщо я обертаюсь на , я хотів би, щоб мої нові пікселі були 4x4.π/2π/4
Отже, загалом, дається початкове зображення з горизонтальною шириною пікселя та вертикальною висотою пікселя та обертанням кута .x0y00≤θ≤π/2
Мої нові горизонтальні лінії сканування збираються перетинати вертикальні лінії сканування від вихідного зображення зі швидкістю на одиницю довжини та перетинати горизонтальні лінії сканування від вихідного зображення зі швидкістю на одиницю довжини.1x0cosθ1y0sinθ
Так само мої нові вертикальні лінії сканування збираються перетинати початкові горизонтальні лінії сканування зі швидкістю та оригінальні вертикальні лінії сканування зі швидкістю .1y0cosθ1x0sinθ
Тож я хотів би, щоб моє співвідношення сторін було
і моя нова піксельна область буде
xθyθ=x0cosθ+y0sinθy0cosθ+x0sinθ
xθyθ=x0y0.
Я не маю уявлення, як найкраще боротися з помилками заокруглення, оскільки вам, мабуть, потрібні пропорції, щоб бути раціональними, а області пікселів - цілими числами. Також зауважте, що я нічого не довів, просто придумайте кілька формул для співвідношення сторін, які відповідають інтуїції на , та .θ=0θ=π/2θ=π/4