Tengo que dibujar una elipse de tamaño arbitrario y orientación píxel por píxel. Parece bastante fácil dibujar una elipse cuyos ejes mayor y menor se alineen con los ejes xey, pero girar la elipse en un ángulo arbitrario parece más complicado. Inicialmente, pensé que podría funcionar dibujar la elipse no girada y aplicar una matriz de rotación a cada punto, pero parece que eso podría causar errores al redondeo, y necesito una precisión bastante alta.¿Cómo se dibuja una elipse con orientación arbitraria píxel por píxel?
¿Mi sospecha sobre este método es correcta? ¿Cómo podría lograr esta tarea más precisamente?
Estoy programando en C++ (aunque eso no debería importar ya que esta es una pregunta más orientada a algoritmos).
Editar: como David señaló, creo que realmente me pregunto cómo hacer la interpolación de píxeles.
Creo que esto corre el riesgo de costumbre con "hacia adelante" transformaciones: que el alias provocará que "omita" píxeles en las coordenadas transformadas. – dmckee
Sí, es por eso que he estado buscando un método diferente. ¿Hay alguna buena manera de lidiar con el aliasing? – amc
Sí, quiero decir, todo depende de qué biblioteca use para hacer su dibujo. Pero aliasing arruinará cualquier tipo de rotación. Su pregunta debería ser "¿cómo hago la interpolación de píxeles?" :) –