Matemáticas puras, física, química, etc.: tareas de entrenamiento cerebral que no tienen nada que ver con el comercio [Parte 2] - página 20

 

En coordenadas polares, todo estará bien allí. Pero al cambiar a coordenadas normales, saldrá lo mismo.

¿Cuál es la respuesta corta? Tienes que bailar desde la estufa. Si se evalúa el área de valores, no es necesaria la reducción a esta forma.

_____________

Por cierto, no es difícil obtener los coeficientes de la ecuación.

Y una cosa más, por cierto, la elipse original antes de la rotación tampoco se expresa con una función de este tipo.

 
TheXpert:

En coordenadas polares, todo estará bien allí. Pero al cambiar a coordenadas normales, saldrá lo mismo.

¿Cuál es la respuesta corta? Tienes que bailar desde la estufa. Si se evalúa el área de valores, no es necesaria la reducción a esta forma.

_____________

Por cierto, no es difícil obtener los coeficientes de la ecuación.

Y una cosa más, por cierto, la elipse original antes de la rotación tampoco se expresa con una función de este tipo.


La tarea consiste en dibujar una elipse rotada píxel a píxel. Una elipse no, pero un círculo aplanado también está bien.
 

Una elipse y un círculo aplanado son la misma cosa.

Entonces, hay una ecuación -- x^2/a^2 + y^2/b^2 = 1 -- que es una elipse. (1)

Además... hay una transformación. Expresar x y por x' y' no es un problema. La sustitución en (1) tampoco es un problema.

Entonces hacemos un bucle sobre x en incrementos de 1 y un bucle sobre y en incrementos de 1.

Y entonces medimos estos puntos, y es bastante fácil.

El único problema es el área de valores. Aquí es donde tienes que pensar en ello.

 
TheXpert:

Una elipse y un círculo aplanado son la misma cosa.

Entonces, hay una ecuación -- x^2/a^2 + y^2/b^2 = 1 -- que es una elipse. (1)

Además... hay una transformación. Expresar x y por x' y' no es un problema. La sustitución en (1) tampoco es un problema.

Entonces hacemos un bucle sobre x en incrementos de 1 y un bucle sobre y en incrementos de 1.

Y luego medimos estos puntos, y no es tan difícil.

El único problema... el rango de valores. Aquí es donde tienes que pensar en ello.



Si un círculo achatado y una elipse son lo mismo, entonces y=k*sqr(r^2-x^2) es una elipse.

Si obtienes y a partir de x y lo giras, obtienes las esquinas de los píxeles (por ejemplo el píxel, el píxel inferior y el píxel derecho). Cualquier criba de píxeles y la conexión de los puntos resultantes con una línea se verá torcida. Lo he intentado de muchas maneras. La única forma agradable es la función y' a partir de x', si los puntos están más alejados que un píxel, entonces conéctalos con una línea.

 
En resumen, probablemente calcularía los puntos en el sistema polar y luego eliminaría los que sobran según el principio de los 8 enlaces.
 
TheXpert:
En resumen, probablemente calcularía los puntos en el sistema polar y luego eliminaría los que sobran según el principio de los 8 enlaces.

Lo intentaré.
 
Integer:


Si el círculo aplanado y la elipse son lo mismo, entonces y=k*sqr(r^2-x^2) es una elipse.

Si obtienes y a partir de x y giras, habrá esquinas de píxeles (por ejemplo, píxel, píxel inferior y píxel derecho). Cualquier tamizado de los píxeles y la conexión de los puntos resultantes con una línea se verá torcida. Lo he intentado de muchas maneras. La única forma agradable es en función de y' a partir de x', si los puntos están más separados que un píxel, entonces conéctalos con una línea.


¿Es necesario dibujarla en un solo color, o se puede hacer un antialiasing en una imagen? Si se trata de un alisado, se puede buscar una implementación del algoritmo de Bresenham para la elipse

P.D. Aquí hay algo más que encontré http://www.geometrictools.com/Documentation/IntegerBasedEllipseDrawing.pdf

 
Avals:


¿Tengo que hacerlo en un solo color, o puedo hacerlo en una trama antialiasing? Si se trata de un alisado, se puede buscar una implementación lista del algoritmo de Bresenham para la elipse

P.D. Aquí hay más información de http://www.geometrictools.com/Documentation/IntegerBasedEllipseDrawing.pdf


En un color, si con antialiasing, tendrás que hacer todo con antialiasing.


* * *

Supongo que la elipse no será hasta la próxima temporada :)

Algo surgió, por supuesto. En realidad no se me ocurrió a mí, sino que vi cómo Renat dibujaba un círculo. Comprueba toda la zona, tanto si el punto está dentro como fuera de la figura. A continuación, acércate a la figura preparada por los cuatro lados y colorea el contorno. Hay otro inconveniente en este caso: si no es una elipse girada, es necesario calcular y reflejar para un cuarto. Si se trata de una elipse girada, hay que calcular para la mitad de ella y reflejarla. También quiero hacer una muesca para dibujar sectores y cortes...

 

Integer:

Si se gira, se calcula para la mitad y se refleja. También quiero hacer una muesca para dibujar sectores, rodajas...

Especialmente las coordenadas polares.
 
TheXpert:
Especialmente las coordenadas polares.


En parte, pero no del todo. En un área cuadrada para cada x e y, primero rotamos, transformamos las x e y rotadas a coordenadas polares - obtenemos la distancia del punto al centro (r) y el ángulo (fi), por el ángulo fi, dado el radio y el coeficiente calculamos la distancia del punto extremo de la elipse al centro, comparamos con r y averiguamos si el punto está dentro o no.

En cualquier caso, tendrá que dividirlo en cuartos o mitades y reflexionar.

Si dibujas en coordenadas polares directamente, tienes que limpiar algunos puntos después, y si dibujas sólido, es más fácil contornearlo después. Tal vez no sea así, pero es evidente que hay más complicaciones de las que parece.