![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() Conociendo las fórmulas matemáticas de la construcción de una Elipse, me preguntaba como dibujarlo pixel por pixel, es decir empezar en cierto lugar, recorrer según su fórmula, y terminar en el mismo punto donde empezó.
Imagino que, para mostrarlo debo realizarlo con un TTimer, pero mi pregunta va dirigida más a conocer aquella ruta de construcción (dibujado) de esa Elipse, ya que requiero hacer mover un objeto por esa trayectoria, algo así como el movimiento de un Planeta alrededor del Sol por así decirlo, pero necesito saber en que coordenada de la Elipse se encuentra el planeta. |
#2
|
|||
|
|||
puedes hacerlo facilmente mediante coordenadas polares tomando como variable independiente el angulo ro algo asi como:
txy(a,0); pd; for i := 0 to 360 step 2 do begin ro := sqrt(a^2*b^2/(b^2*cos(i)^2+a^2*sin(i)^2)); txy(ro*cos(i),ro*sin(i)); end; Esta tomado de un interprete que me hice para el trazado de perfiles metalicos mediante graficos de tortuga, pero te puede dar una idea de como hacerlo. Saludos |
#3
|
|||
|
|||
No tengo Delphi a mano, lo probaré en casa. Solo viendo así el código: ¿y como detectar una posición (las coordenadas) en ese trazado en una TImage? Como dije mi objetivo es hacer mover un objeto por la ruta (alrededor) de elipse, y en algún momento necesitaré saber donde se encuentra el objeto en esa TIMage.
Última edición por Deiv fecha: 19-11-2006 a las 17:08:36. |
#4
|
||||
|
||||
Según entendí lo que tu quieres son las coordenadas de la elipse y con ellas poder hacer lo que quieras, dibujar la elipse o mover un objeto siguiendo esa trayectoria. Sea como sea, aquí te dejo una función, que pasándole como parámetros x1,y1,x2,y2 (que tienen el mismo significado que en la función de dibujo) y el ángulo entre 0 y 2pi nos devuelve las coordenadas del punto correspondiente de la elipse.
Por ejemplo si queremos dibujar la elipse:
O si queremos mover un botón a lo largo de la trayectoria:
|
#5
|
|||
|
|||
![]() Vuelvo de casa después de implementar la orientación de JF Sebastian,
Pues lo he dibujado así con el código de abajo, imagino que deben ser las matemáticas, pero este me dibuja solo un cuadrante de la Elipse en el TIMage (cuadrante IV) Como dije solo me dibuja el IV cuadrante, debe ser que me estoy ubicando mal en el TImage; otra cosa, el Timer no me dibuja muy bien los pixels, pareciera que lo hiciese como un Random, ¿alguna sugerencia? Es un problemita no tener conexión Internet en casa, siempre me valgo de un CyberCafe, y estoy leyendo en este momento el código de Seoane, lo probaré regresando, y luego responderé, bueno?. |
#6
|
|||
|
|||
tienes que pasar los grados a radianes entre otras cosas...
|
#7
|
|||
|
|||
![]() He revisado el código de Seoane, y...... sinceramente es lo que necesitaba, agradecerte una vez mas "Salvador Allende" ("Salvador Seoane")
Gracias. |
#8
|
|||
|
|||
Gracias
Vengo siguiendo un tema que llevo en la universidad por varios casos como este en el foro y siempre me encuentro con las respuestas de Seoane te doy gracias amigo sabiendo que llevas tiempo sin actividad, tus respuestas me han dado mucha ayuda.
Es lo que buscaba, con esto termino de entender lo que estudiaba. Gracias de nuevo |
#9
|
|||
|
|||
Cita:
Me ha salido de maravilla el codigo, pero ahora esta es la situacion, quiero hacer lo mismo que el botón pero lo he cambiado por un Timage Sólo me faltaria marcar la ruta por la que pasa con una linea e irla marcando poco a poco con sleep. La finalidad de mi animación es dibujar un patrón aleatorio de posibles elipses pero soy un poco malo en trigonométria, espero puedan ayudarme |
#10
|
||||
|
||||
Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración
![]() Recuerda poner los tags al código fuente, ejemplo: ![]() Gracias ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como obtener el color de un pixel | ilichhernandez | Gráficos | 11 | 02-11-2006 15:40:00 |
pasar imagen pixel a pixel | gulder | Gráficos | 7 | 26-06-2005 02:10:45 |
Pixel en un form | aladelta | Gráficos | 1 | 02-12-2004 12:56:41 |
Obtener posicion X,Y de un pixel en un TImage | diegofhernando | Varios | 3 | 17-12-2003 15:03:23 |
¿ Cual es la mejor forma de implementar una Pizarra con Sockets? pixel a pixel ? | sase | Internet | 1 | 22-10-2003 16:23:50 |
![]() |
|