Programación General > C++ Builder

 MEdir distancia en una imagen

<< < (2/2)

gonzalipto:
Bueno Gracias a todos!!

una vez mas este foro me ha mostrado la direccion por la que debo ir..

ya resolvi mi necesidad

aca les explico el como..

Primero defini 4 variables globales

bool medir;
int coordX;
int coordY;
int medircont;

luego tengo un botton en el cual hago click para comenzar la medicion y tiene el siguiente codigo dentro..
void __fastcall TForm1::Button2Click(TObject *Sender)
{
medir=true;
medircont=1;//luego explico bien para que sirve esta variable
//Los edits los pongo solo para corroborar que este midiendo bien, no son necesarios.
Edit1->Text="midiendo";
Edit2->Text="midiendo";
Edit3->Text="midiendo";
}

//Una vez presionado el boton programa el evento onclick de la imagen para que pueda medir la distancia entre dos puntos haciendo click en ellos. Es decir hago click en el boton que tiene caption medir y luego hago click en el primer punto y posteriormente hago click en el segundo punto para calcular la distancia entre ellos..

//Aqui les paso el codigo del evento onclick de la imagen

void __fastcall TForm1::Image1Click(TObject *Sender)
{

if(medir)
{
TPoint posicion;

 if(medircont==1)//cuando medircont vale 1 significa que voy a hacer click en el primer punto
 {
  GetCursorPos((&posicion));
  coordX=posicion.x;
  coordY=posicion.y;
  medircont++;
 }

 else if(medircont==2)//cuando medircont vale 2 quiere decir que voy a hacer click en el segundo punto
 {
  GetCursorPos((&posicion));
  int X1=posicion.x;
  int Y1=posicion.y;

  coordX=abs(coordX-X1);
  coordY=abs(coordY-Y1);

  Edit1->Text=coordX;
  Edit2->Text=coordY;


  int dist=sqrt(pow(coordX,2)+ pow(coordY,2));//aqui por pitagoras calculo la distancia entre los puntos a partir de la resta
                                                                        entre sus coordenadas X y Y
  Edit3->Text=dist;//nuevamente este edit solo es para control, no es necesario
 }
}
}


Bueno espero q a alguien le sirva, no se si el codigo es del todo eficiente.. pero por lo menos anda.. Dsp lo mejorare si es necesario.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa