Ver Mensaje Individual
  #2  
Antiguo 30-03-2011
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Reputación: 22
gatosoft Va camino a la fama
Hola Dan, no conozco un foro del tema, y pues si nos diriges la pregunta a nosotros no veo una pregunta concreta... ¿exactamente que te detiene?

Voy a tratar de explicar la situación como yo la veo:

1) Dibujas un plano sobre el canvas de un control... por ejemplo un panel.

2) Cuando pintaste tu plano, debiste tener claro que estas utilizando una escala... de Kilometros o metros a Pixeles, es decir:

El plano que dibujaste sobre el canvas del panel tiene coordenadas (0,0) en la esquina superior izquierda, y coordenadas (Panel.Width, Panel.Heigth) en la parte inferior derecha.

Debiste por tanto identificar que por ejemplo 200 pixeles (del panel) equivalen a 15 kilometros (de tu plano).
Debiste identificar tambien que en la posicion (0,0) del panel correspondía a las coordenadas (-25,842033 -059,932000.) del plano...

3) Debes detectar la posicion del cursor sobre el panel cuando pases el raton sobre el componente o cuando hagas click en un punto: Esto se logra con OnMouseMove (¿o es OnMouseOver?, no recuerdo) y con OnMouseDown... ambas te proporcionan los valores X,Y relativos al panel.

4) Dentro de cualquiera de estos eventos, cuando leas la posicion de tu cursor (x,y) en pixeles, los podrás transformar a kilometros mediante una regla de tres y de aqui los podras pasar a tus coordenadas según la formula que supongo que tendras...


¿Estoy bien con respecto a lo que has traajado?, ¿lo has visto de una manera diferente?, ¿exactamente en que punto te quedas?

Un saludo,
Responder Con Cita