Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 03-11-2016
Tuvan Tuvan is offline
Registrado
NULL
 
Registrado: nov 2016
Posts: 3
Poder: 0
Tuvan Va por buen camino
Cita:
Empezado por seoane Ver Mensaje
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.

Código Delphi [-]
function EllipsePoint(X1,Y1,X2,Y2: Integer; Angulo: Double): TPoint;
var
  Cx,Cy,A,B: Double;
begin
  A:= abs(X2-X1)/2;
  B:= abs(Y2-Y1)/2;
  Cx:= (X1+X2)/2;
  Cy:= (Y1+Y2)/2;
  Result.X:= Trunc(Cx + A * cos(Angulo));
  Result.Y:= Trunc(Cy - B * sin(Angulo));
end;

Por ejemplo si queremos dibujar la elipse:
Código Delphi [-]
var
  i: integer;
  P: TPoint;
begin
  P:= EllipsePoint(10,10,300,100,0);
  Canvas.MoveTo(P.X,P.Y);
  for i:= 1 to 360 do
  begin
    P:= EllipsePoint(10,10,300,100,(Pi*i)/180);
    Canvas.LineTo(P.X,P.Y);
  end;
end;

O si queremos mover un botón a lo largo de la trayectoria:
Código Delphi [-]
var
  i: integer;
  P: TPoint;
begin
  for i:= 0 to 360 do
  begin
    P:= EllipsePoint(10,10,300,100,(Pi*i)/180);
    Button1.Left:= P.X;
    Button1.Top:= P.Y;
    Application.ProcessMessages;
    Sleep(10);
  end;
end;

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
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
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


La franja horaria es GMT +2. Ahora son las 05:11:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi