Ayuda con algo de gráficos...

Iniciado por juanchomfg, 30 Mayo 2011, 01:29 AM

0 Miembros y 1 Visitante están viendo este tema.

juanchomfg

Buenas, por empezar aclaro que soy nuevo, así que si cometo algún error espero sepan disculpar.
Soy estudiante de Bioingeniería y estoy trabajando en un Laboratorio de Bioimplantes (bioimplantes.com.ar), me fue dado un software hecho a medias y tengo que hacerle unas modificaciones...

La duda que tengo es la siguiente: me dieron un software empezado a desarrollar que consiste en cargar imágenes de radiografías de boca de un paciente y resulta que hay que hacerles unas medidas sobre la imágen, o sea, yo hago click en 2 lugares distintos y el soft me tendría que decir qué distancia hay entre esos 2 puntos y graficar una recta, eso es lo que no puedo hacer, graficar la recta.

-otra duda es la siguiente: sobre la imágen cargada se pueden ir haciendo modificaciones, es decir agregando cosas y cambiándolas de lugar; resulta que tengo un botón de deshacer pero deshace todas las modificaciones, no va de a una, y no sé cómo hacer para que haga eso, o sea deshacer de a uno...

Si alguien me puede ayudar le agradeceré.
Si necesitan algún pedazo del código o algo más para poder ayudarme se los puedo facilitar.

Gracias.




Voy a subir ahora el pedazo de código dónde se supone que tengo los extremos de la recta que quiero dibujar, espero ahora les sirva esto y alguien me pueda ayudar por favor......

void __fastcall TImWork::ImageClick(TObject *Sender)
{

if(medir)
{
TPoint posicion;

if(medircont==1)
{
  GetCursorPos((&posicion));
  coordX=posicion.x;
  coordY=posicion.y;
  medircont++;
}

else if(medircont==2)
{
  GetCursorPos((&posicion));
  double X1=posicion.x;
  double Y1=posicion.y;

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

  double dist=sqrt(pow(coordX,2)+ pow(coordY,2));

  //Depende cuanto zoom haya
  if(zoom==2)
  dist=dist/2;
  if(zoom==3)
  dist=dist/4;

  dist=dist/escala;
  //Para que la medida tenga dos decimales hacemosl o siguiente
  dist=double(int(dist*100.0+.5))/100.0;
  Label6->Caption=(dist);

  medircont++;
  medir=false;
}
}


Yo supongo que con estas líneas:
  coordX=abs(coordX-X1);
  coordY=abs(coordY-Y1);
sería suficiente para dibujar, o sea, esas son las coordenadas, los extremos de la recta, no sé qué función podría utilizar...gracias