Il 3D è un po 'fuori dalla mia profondità. Se fosse 2D, sceglierei le proporzioni dei pixel nell'immagine ruotata in modo tale che il rapporto tra le frequenze di campionamento sia approssimativamente uguale alla velocità con cui si intersecano le linee di scansione nell'immagine originale.
Lo sto inventando mentre procedo, quindi lasciami fare un esempio prima:
Supponiamo che i miei pixel siano larghi 16 unità e alti 1 unità. Non importa quanto ruoti, vorrei che i pixel risultanti avessero un'area di circa 16 unità al quadrato. Se giro di , vorrei i miei nuovi pixel 1x16. Se giro di , vorrei che i miei nuovi pixel fossero 4x4.π/2π/4
Quindi, più in generale, data un'immagine iniziale con larghezza pixel orizzontale e altezza pixel verticale e una rotazione dell'angolo .x0y00≤θ≤π/2
Le mie nuove linee di scansione orizzontale intersecheranno le linee di scansione verticale dall'immagine originale ad una velocità di per unità di lunghezza e intersecheranno le linee di scansione orizzontale dall'immagine originale ad una velocità di per unità di lunghezza.1x0cosθ1y0sinθ
Allo stesso modo, le mie nuove linee di scansione verticale intersecheranno le linee di scansione orizzontali originali a una velocità di e le linee di scansione verticali originali a una velocità di .1y0cosθ1x0sinθ
Quindi vorrei che le mie proporzioni fossero
e la mia nuova area pixel deve essere
xθyθ=x0cosθ+y0sinθy0cosθ+x0sinθ
xθyθ=x0y0.
Non ho idea di come gestire al meglio gli errori di arrotondamento, poiché probabilmente è necessario che le proporzioni siano razionali e che le aree dei pixel siano numeri interi. Nota anche che non ho provato nulla, ho solo escogitato alcune formule per le proporzioni che corrispondono all'intuizione a , e .θ=0θ=π/2θ=π/4