Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-03-2015
el-mono el-mono is offline
Miembro
 
Registrado: abr 2008
Ubicación: Lules
Posts: 176
Poder: 17
el-mono Va por buen camino
Poligono con posicion incorrecta dentro del canvas

Buenas noches.

Tengo un pequeño problema que no se resolver y espero poder recibir ayuda de ustedes.

Lo que quiero hacer: Quiero mediante código dibujar un polígono con un color y un borde para resaltar una porción de la imagen

Obtener puntos del polígono a dibujar: Para obtener los puntos del poligono que siempre sera el mismo puse sobre un formulario un control Timage y cargue la imagen, luego puso un control del tipo TSelectionPoint luego ejecute el proyecto temporal y fui capturando los puntos mediante la sentencia: TSelectionPoint.Position.Point.X / Y.

Dibujar Polígono y sorpresa: Cuando ya obtuve mis puntos para poder dibujar el polígono cree un código (lo pego abajo para que vean) en un control TButton para dibujar mi polígono y ver los resultados, pero me lleve una sorpresa al ver que mi polígono se me dibuja por arriba de las coordenadas que obtuve con el control TSelectionPoint. No se que estoy haciendo mal, espero haberme explicado



Código Delphi [-]
var
  p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12: TPointF;
  MyPolygon: TPolygon; //System.Math.Vectors unit needed.
begin
  // sets the points that define the polygon
  p1 := TPointF.Create(88, 84);
  p2 := TPointF.Create(108, 99);
  p3 := TPointF.Create(113, 107);
  p4 := TPointF.Create(116, 127);
  p5 := TPointF.Create(114, 144);
  p6 := TPointF.Create(93, 149);
  p7 := TPointF.Create(77, 148);
  p8 := TPointF.Create(65, 147);
  p9 := TPointF.Create(61, 132);
  p10 := TPointF.Create(59, 113);
  p11 := TPointF.Create(68, 98);
  p12 := TPointF.Create(88, 84);



  // creates the polygon

  SetLength(MyPolygon, 12);

  MyPolygon[0] := p1;
  MyPolygon[1] := p2;
  MyPolygon[2] := p3;
  MyPolygon[3] := p4;
  MyPolygon[4] := p5;
  MyPolygon[5] := p6;
  MyPolygon[6] := p7;
  MyPolygon[7] := p8;
  MyPolygon[8] := p9;
  MyPolygon[9] := p10;
  MyPolygon[10] := p11;
  MyPolygon[11] := p12;

  Image2.Bitmap.Canvas.BeginScene;
  // draws the polygon on the canvas
  Image2.Bitmap.Canvas.Stroke.Color := $FF4193F9;
  Image2.Bitmap.Canvas.Stroke.Thickness := 10;
  Image2.Bitmap.Canvas.Fill.Color := $FFF8FD5F;

//  Image1.Bitmap.Canvas.Fill.Kind := TBrushKind.None;
  Image2.Bitmap.Canvas.DrawPolygon(MyPolygon, 90);
  Image2.Bitmap.Canvas.FillPolygon(mypolygon,90);
  Image2.Bitmap.Canvas.EndScene;


Les dejo una imagen para ilustrar mas:

https://drive.google.com/file/d/0B4d...ew?usp=sharing
Responder Con Cita
  #2  
Antiguo 10-03-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Una pequeña prueba que te puede orientar sobre donde está el problema, es que te fijes si ese "error" o desplazamiento a la hora de dibujar el polígono siempre es el mismo.
Es decir, intenta dibujar un polígono para cubrir la raiz del diente inferior y revisa si el "offset" es el mismo que en el anterior caso (en cuanto a X e Y).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 10-03-2015
el-mono el-mono is offline
Miembro
 
Registrado: abr 2008
Ubicación: Lules
Posts: 176
Poder: 17
el-mono Va por buen camino
Buenas Neftali.

Chanfles , me doy!!

Intente crear otro polígono para cubrir el diente de abajo y se me dibuja en el mismo lado.
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
Saber la posición del mouse al interior de un canvas.... DarkMedel Gráficos 6 24-08-2015 20:29:31
posicion del cursor dentro de un listview Avellas OOP 16 19-11-2007 16:16:10
Posicion del cursor dentro de un field de un dbgrid Kivan Varios 0 14-06-2005 12:37:34
Conocer la posición de un Thread dentro del Listado de ActiveThreads del IdTCPServer R_Richards Internet 2 05-02-2005 23:07:38
Imprimir en cierta posición con el Canvas BlueSteel Impresión 4 19-01-2005 14:47:33


La franja horaria es GMT +2. Ahora son las 09:42:18.


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