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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-09-2008
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: 19.442
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
Antes de nada comentar que el ángulo que yo tomo para el cálculo no es el que se pinta en los dibujos (esas son líneas para delimiar vértices) sino el que forman lel ASTA (vertical) y la parte INFERIOR de la bandera.

De todas formas en el ejemplo nuevo los he pintodo en color AZUL para que se diferencie.

Cita:
Empezado por erikmx Ver Mensaje
(Esta es la Pseudo bandera que dibuje aproximandome a los 90 grados pero que no traza las lineas como en el anterior)
En este caso el error era detectando el punto inferior/izquierdo de la bandera. CORREGIDO.

Cita:
Empezado por erikmx Ver Mensaje
(Esta la hice aproximandome a los 50 grados pero no detecta el punto punto del extremo inferior lo toma antes)
Aquí hay un error de principiante por mi parte; Tomé en cuenta el tamaño del control Image el lugar del Canvas. CORREGIDO.

Con esos cambios parace que ahora detecta bien los vértices (ROJO) y genera bien las líneas para calcular los ángulos (AZULES); Teniendo esas dos líneas azules y basándote en ellas ya se pueden realizar los cálculos.




Un saludo.
Archivos Adjuntos
Tipo de Archivo: zip Bandera4.zip (19,6 KB, 12 visitas)
__________________
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.

Última edición por Neftali [Germán.Estévez] fecha: 19-09-2008 a las 13:15:28.
Responder Con Cita
  #2  
Antiguo 21-09-2008
erikmx erikmx is offline
Miembro
 
Registrado: nov 2007
Posts: 40
Poder: 0
erikmx Va por buen camino
:)

Gracias Neftali por tu valiosa ayuda, y perdon por la tardanza en contestar, estoy buscando los materiales (tela) que funcionen mejor para la cuestion de que detecte bien los colores hice una pequeña prueba pero con la webcam de la compu sobre una pequeña bandera hecha de plastico (bolsa negra) pero no me funciono claro que la luz era de foco y lo ideal es que sea con luz solar para que la imagen salga con mejor calidad, y creo sera mejor tela para que no cree "reflejos" sobre la superficie de la bandera.

Por otro lado detecta muy bien ahora con los cambios los contornos independientemente de los colores que tenga la bandera claro una vez seleccionado el color de la misma, solo el detalle de los angulos que cheque, parece que no detecta correctamente los mismos:


Código Delphi [-]
  // LINEAS DETECTADAS
  imgBandera2.Canvas.Pen.Width := 3;
  imgBandera2.Canvas.Pen.Color := clRed;
  imgBandera2.Canvas.Brush.Color := clRed;

  imgBandera2.Canvas.MoveTo(x1b, y1b);
  imgBandera2.Canvas.LineTo(x2b, y2b);
  imgBandera2.Canvas.LineTo(x1ib, y1ib);
  imgBandera2.Canvas.LineTo(x1b, y1b);


  // LINEAS PARA ANGULOS
  imgBandera2.Canvas.Pen.Width := 5;
  imgBandera2.Canvas.Pen.Color := clBlue;
  imgBandera2.Canvas.Brush.Color := clBlue;

  imgBandera2.Canvas.MoveTo(x1ib, y1ib);
  imgBandera2.Canvas.LineTo(x2b, y2b);
  imgBandera2.Canvas.MoveTo(x1ib, y1ib);
  imgBandera2.Canvas.LineTo(x1ib, y2b);

  // si es 90 grados o casi no se ve bien, así que alargamos...
  if (Abs(y2b - y1ib) < 100) then begin
    imgBandera2.Canvas.MoveTo(x1ib, y1ib);
    imgBandera2.Canvas.LineTo(x1ib, y1ib + 100);
  end;


//Para Calcular el Angulo
    ang := ArcTan2(y2b,x1ib);    // "y" para la vertical "x" para la Horizontal
    angd := RadToDeg(ang);

    // Resultado
    Angulo.Text := IntToStr(Trunc(angd)) + '°';
    Velocidad.Text := IntToStr(Trunc(angd/4));

end;
Creo que el detalle esta en la orientacion, es decir en el punto que se concidera el grado 0° o tal ves me equivoco ya que para poder calcular con el metodo de la bandera utilizan este transportador como referencia





Por cierto Neftali muchas gracias por tu paciencia

Última edición por erikmx fecha: 21-09-2008 a las 01:41:05. Razón: Me desconfiguro el codigo delphi :(
Responder Con Cita
Respuesta


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
Calcular la posicion del cursor sobre imagen adrian76 Gráficos 0 12-11-2007 10:15:35
Determina la amplitud de un ángulo dada su tangente. Roilo Varios 4 02-05-2007 17:54:49
Trazar un vector teniendo un determinado ángulo juanchi Gráficos 3 08-12-2006 23:21:02
Como trazar un arco Luli Gráficos 3 09-06-2005 00:59:06
Boton con imagen y texto en varias líneas Novás Varios 2 08-03-2004 13:12:22


La franja horaria es GMT +2. Ahora son las 08:53:54.


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