Eduardo
2006-05-20 17:09:52 UTC
Les hago una introduccion a mi problema:
Tengo que dibujar una serie de segmentos y arcos de circulo, como se debe
hacer un zoom en zonas de interes (puede ser 50x), el radio de los arcos
puede tomar valores grandes, ademas de que los puntos inicial y final de la
mayoria de los elementos caen fuera de la ventana.
Como las rectas pueden empalmarse con los arcos, ser tangentes etc,etc...
obliga a tener una cierta precision, una rutina asi debe no puede usar
argumentos en grados, deberia ser un float ,un entero en milesimas de grado
o PuntoInicial-PuntoFinal-Radio-CoordCentro.
De las librerias graficas (16bit) que he encontrado, para dibujar arco de
circulo todas utilizan en su llamada un numero entero de grados para los
angulos inicial y final.
Este detalle hace que solo sirva para dibujar arcos de radio pequeño, uno de
radio 256 pixels ya tiene un error de 4 pixels.
La version 'precisa' de estas rutinas deberia ser del estilo de la API Arc y
ArcTo de Windows
BOOL Arc(
HDC hdc, // handle to device context
int nLeftRect, // x-coordinate of bounding rectangle's upper-left corner
int nTopRect, // y-coordinate of bounding rectangle's upper-left corner
int nRightRect, // x-coordinate of bounding rectangle's lower-right
corner
int nBottomRect, // y-coordinate of bounding rectangle's lower-right
corner
int nXStartArc, // first radial ending point
int nYStartArc, // first radial ending point
int nXEndArc, // second radial ending point
int nYEndArc // second radial ending point
);
Si bien en Windows 95/98 tiene la limitaciones en cuanto al tamaño del
rectangulo, me resultan suficientes.
Tambien busque sobre el algoritno de Bresenham para circulos, y solo
encontre ejemplos para dibujar circulos completos.
Despues de todo esto viene la pregunta evidente: Alguien conoce alguna
libreria en C (16bit) que dibuje arcos con mas precision ?
Eduardo.
Inviato da X-Privat.Org - Registrazione gratuita http://www.x-privat.org/join.php
Tengo que dibujar una serie de segmentos y arcos de circulo, como se debe
hacer un zoom en zonas de interes (puede ser 50x), el radio de los arcos
puede tomar valores grandes, ademas de que los puntos inicial y final de la
mayoria de los elementos caen fuera de la ventana.
Como las rectas pueden empalmarse con los arcos, ser tangentes etc,etc...
obliga a tener una cierta precision, una rutina asi debe no puede usar
argumentos en grados, deberia ser un float ,un entero en milesimas de grado
o PuntoInicial-PuntoFinal-Radio-CoordCentro.
De las librerias graficas (16bit) que he encontrado, para dibujar arco de
circulo todas utilizan en su llamada un numero entero de grados para los
angulos inicial y final.
Este detalle hace que solo sirva para dibujar arcos de radio pequeño, uno de
radio 256 pixels ya tiene un error de 4 pixels.
La version 'precisa' de estas rutinas deberia ser del estilo de la API Arc y
ArcTo de Windows
BOOL Arc(
HDC hdc, // handle to device context
int nLeftRect, // x-coordinate of bounding rectangle's upper-left corner
int nTopRect, // y-coordinate of bounding rectangle's upper-left corner
int nRightRect, // x-coordinate of bounding rectangle's lower-right
corner
int nBottomRect, // y-coordinate of bounding rectangle's lower-right
corner
int nXStartArc, // first radial ending point
int nYStartArc, // first radial ending point
int nXEndArc, // second radial ending point
int nYEndArc // second radial ending point
);
Si bien en Windows 95/98 tiene la limitaciones en cuanto al tamaño del
rectangulo, me resultan suficientes.
Tambien busque sobre el algoritno de Bresenham para circulos, y solo
encontre ejemplos para dibujar circulos completos.
Despues de todo esto viene la pregunta evidente: Alguien conoce alguna
libreria en C (16bit) que dibuje arcos con mas precision ?
Eduardo.
Inviato da X-Privat.Org - Registrazione gratuita http://www.x-privat.org/join.php