Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-07-2011
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Dibujar sobre un heptágono regular sabiendo el rádio

hola, estoy un poco enredado tratando de dibujar en un heptágono regular una línea (o hasta 7) desde el centro (punto azul) a una distancia variable de su centro (en este caso cualquiera de los puntos rojos).... en si me da un poco de pena reconocer que no recuerdo nada de como tratar los ángulos, de como calcular coordenadas y creo que es por ahí por donde debo seguir... en la siguiente imagen les muestro el heptágono sobre el cual pienso trabajar...

__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #2  
Antiguo 27-07-2011
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
creo que me falto definir mejor, mi intensión es que teniendo un punto de referencia (el primer punto rojo al lado derecho del número 3 que esta en la gráfica que envié), poder saber donde deben ir los otros 6 puntos rojos
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #3  
Antiguo 27-07-2011
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
listo... hay veces que con solo preguntar como que todo se despeja dejo la solución:

Código Delphi [-]
procedure TForm1.PintarLineas(radio, CentroX, CentroY  : integer);
var i : integer;
   ang : double;
begin
  Image1.Canvas.Pen.Color := clRed;
  Image1.Canvas.Pen.Width := 1;

  for i := 1 to 8 do
  begin
     ang := i * (2 * pi) / 7;
     if i = 1 then
        Image1.Canvas.MoveTo(round(CentroX + (radio * cos(90 + ang))) ,round(CentroY + (radio * sin(90 + ang))))
     else
        Image1.Canvas.LineTo(round(CentroX + (radio * cos(90 + ang))) ,round(CentroY + (radio * sin(90 + ang))));
  end;
end;
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #4  
Antiguo 27-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola RONPABLO.

Me alegro que le dieras solución, yo estuve intentando con algo así:
Código Delphi [-]
procedure DibujarHep(const Frm: TForm; const Centro:TPoint; const Radio: Integer);
var
  P: array[1..6] of TPoint;
  Ang, i: Integer;
begin
  Ang:= 0;
  for i:= 1 to 6 do
  begin
    P[i].X:= Centro.X + Round(Radio * Cos(Ang));
    P[i].Y:= Centro.Y + Round(Radio * Sin(Ang));
    Inc(Ang, 45);
  end;
  Frm.Canvas.Polygon(P);
end;
Pero me parece más sencillo tu código

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



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
Dibujar sobre una imagen. toorbye Gráficos 25 25-04-2017 10:47:55
Dibujar sobre el list view!! underwater Gráficos 2 29-05-2008 13:19:38
Dibujar sobre el escritorio de Windows alquimista API de Windows 11 20-05-2008 02:05:19
Dibujar sobre Timagen eljose Gráficos 7 13-12-2006 11:01:58
Dibujar figuras sobre un DBChart? sano815 Gráficos 1 14-10-2005 05:21:58


La franja horaria es GMT +2. Ahora son las 12:58:43.


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