FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Se podria saber la longitud de una linea pintada( con curvas).
Muy buenas, llevo mucho tiempo dandole vueltas y no se por donde tirar, os lo comento y a ver si me podeis aconsejar algo . Estoy haciendo una aplicacion en la que tengo una serie de "carreteras", imaginaos que tengo un circuito dibujado, y me gustaria saber como puedo hacer para saber en cada momento en que parte del circuito estoy, me explico, si la meta es el punto cero (0 m), si avanzo un poco estoy en el metro ¿?, ¿se podria calcular la longitud de la linea de este dibujo (que tiene curvas) y dividirla sabiendo la distancia total y asignarle algun valor a cada punto de esta linea??.
Esa es mi pregunta, podria asignarle de alguna manera una escala al tamaño de la linea que representa el circuito(carretera),para saber en cada momento en que metro real de esa carretera estoy o seria mejor tener una imagen con ese circuito (carretera) o algun componente que dibuje las lineas y sea capaz de hacer esto que digo. Muchas gracias por su tiempo, ando perdido. P.D: si en delphi no se pudiese realizar esto, con que se podria? se podria incluir en un programa delphi.
__________________
{Saludos.} //Todos los dias se aprende algo nuevo, por que no enseñar nosotros? |
#2
|
||||
|
||||
Bueno, no se nada de esto, pero se me ocurren un par de cosas (no se estaré diciendo barbaridades); Creo que necesitas dos cosas fundamentales:
(1) Para calcular distancias, yo dividiría el trazado en segmentos rectos (pequeñas líneas); Es como si "redibujaras" el circuito, pero sólo utilizando pequeñas líneas rectas; Cuanto más pequelños sean los segmentos, más "afinada" será la medición. (2) Necesitas saber de forma exacta la escala de tu dibujo respecto a la realidad; Con eso podrás saber la distancia real a la que corresponde uno de tus "segmentos" y en consecuencia, sumando segmentos, obtendrás distancias reales. Es sólo una idea, a ver si alguien aporta alguna cosa más...
__________________
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. |
#3
|
|||
|
|||
Gracias netfali por intentar ayudarme, ahora mi pregunta seria como dibujo esos segementos? con el componente que una vez me recomendaste simplegraph (se podria? no me aclaro con el componente :$) o con el canvas de un timage? cual seria la mejor opcion para esto ? y que tamaño tendria que tener esas lineas (¿3 pixels?). Muchas gracias otra vez siempre estas ahi echando un mano.
__________________
{Saludos.} //Todos los dias se aprende algo nuevo, por que no enseñar nosotros? |
#4
|
||||
|
||||
La verdad es que he dado unas ideas, porque tampoco acabo de ver claro qué es lo que tienes que hacer. No acabo de saber bien qué es lo que estás haciendo; No entiendo el programa en sí, sólo has señalado un aspecto concreto y darte consejos sobre cómo hacer las cosas sin saber bien qué tienes que hacer es peligroso, ya que te podemos orientar sobre un camino equivocado.
Hablas de un circuíto; ¿Lo dibujas tú? ¿Está ya dibujado? ¿Es una imagen estática, una foto, un BMP? Hablas de dibujar segmentos, pero no se si debes dibujarlos tú a mano, si se deben calcular, si se deben dibujar automáticamente,...¿?¿? Tal vez deberías explicar qué hace ese programa exactamente para saber de qué estamos hablando...
__________________
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. |
#5
|
|||
|
|||
Voy a intentar ser claro.
Tengo una serie de circuitos (cheste, Monaco), los tengo en jpg, pero estaba mirando la posibilidad de dibujarlos yo con segmentos como tu dices ya que si no lo hago asi no sabria como hacer referencia a una distancia real en el circuito. Los segmentos deberian dibujarse automaticamente (podria tener en una base de datos las coordenadas de cada punto y que al arrancar el programa automaticamente dibuje el circuito con estos segmentos) o hacer esto y que una vez realizado guarde ya el circuito en un jpg para su futuro uso, pero no se si se podria hacer esto en un timage, o con el componente simplegraph o con otro componente. Creo que la mejor opcion seria dibujarlo, ya que asi tambien elijo el grosor de la linea y color entre otras cosas; de la otra forma tengo que depender de la imagen (jpg) y ademas, no tengo todos los circuitos iguales por lo que no podria crear una escala. Espero que ahora si me puedas ayudar. Cualquier otro dato necesites pregunta , muchas gracias.
__________________
{Saludos.} //Todos los dias se aprende algo nuevo, por que no enseñar nosotros? Última edición por Acanol fecha: 02-06-2006 a las 11:10:29. |
#6
|
||||
|
||||
Retomando la idea de dividir el circuito en segmentos:
Puedes tener una imagen con la foto del circuito toda bonita y luego otra que te servira como mapa, no recuerdo ahora el nombre pero no hace mucho alguien mencionara por aqui un juego echo en delphi (racing noseque ) este tenia imagenes jpg de los ciruitos y luego unos mapas donde le indicaba que era pista, que era tierra, etc. Aqui te dejo un ejemplo (un poco chapuzero ) de como medir distancia, se definen los segmentos por un array de puntos. Al mover el raton sobre el circuito te dira en que segmento estas, la distancia al inico y final del segmento, y la distancia al inicio del segmento si hubiesemos seguido una trayectoria recta. Todo pura geometria Espero que te sirva para empezar ... |
#7
|
||||
|
||||
Cita:
// Saludos |
#8
|
||||
|
||||
alguna idea más
Hola
Lo de dividir el circuito en segmentos es lo mejor que se puede hacer. En Dibujo Técnico lo llamamos "rectificación de una curva cualquiera". La longitud que se haya es solamente aproximada, pero creo que para lo que quieres sirve. No obstante, si pudieras comprobar que las curvas son parte de una circunferencia, pues podrías hacer una rectificación de un arco de circunferencia, que es más exacto y más fácil: tan solo necesitas el radio de la circunferencia, el ángulo del arco, y el famoso y mágico pi (3.1415926535...). Espero que te sea de ayuda. Saludos a todos |
#9
|
||||
|
||||
hhhhhhhhhhhmmmmmmmmmmm bueno....empecemos...
Neftali: Cita:
Román: Cita:
Teniendo los puntos de la curva (real, escala real!) o mejor aún la función q genere esa gráfica, puedes sacar la longitud casi exacta (por no decir exacta) de ese trayecto mediante Longitud de arco, teniendo la función haces la integral desde "a" hasta "b" de la raíz de 1+ el cuadrado del diferencial de f(x)...esto es.. Intgrl(sqrt(1+Dif(f(x))^2),a,b)..... Si tienes solo puntos.....entonces puedes formar una función algebráica con el polinomio interpolante de Lagrange, formar una función q derive a una algebráica es pan comido, en cuanto a la integral puedes usar varios métodos como trapecio, simpson, no recuerdo en este momento otros, (algún forero q me refresq la memory ), ahora lo de la imagen es solo graficación, stretch, etc, lo importante es la escala. AAaaaahhhh....Esto sirve!!
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad." Simón Bolívar (Carta al Coronel Inglés Patricio Cambell 05/08/1829). |
#10
|
||||
|
||||
Cita:
// Saludos |
#11
|
||||
|
||||
Roman:
Cita:
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad." Simón Bolívar (Carta al Coronel Inglés Patricio Cambell 05/08/1829). |
#12
|
|||
|
|||
Disculpa por la ausencia
Muy buenas, me he pasado el fin de semana currando en otras cosas asi que no he tenido tiempo de ver el post, muchas gracias por su tiempo y sus ideas, en poder me pongo con esta parte del programa otra vez y les digo si me sirvio todo esto, he visto el ejemplo que pusiste seoane, seria algo asi, tngo que mirarlo detenidamente, muchas gracias a todos, si veo que no puedo solucionarlo con esto os pongo el codigo y vuelvo a esperar de vuestra ayuda, un saludo y Gracias otra vez.
__________________
{Saludos.} //Todos los dias se aprende algo nuevo, por que no enseñar nosotros? |
#13
|
||||
|
||||
Siguiendo con el ejemplo de seoane, aquí tienes una muestra de cómo guardar puntos sobre el circuito.
La idea: A partir de una imagen de un circuito, sobre ella dibujas una serie de segmentos para definir el trazado (cada circuito -BMP- llevará asociado un -MAP- con los puntos definidos). Una vez definidos se guardan y se recuperan. Para calcular la distancia en un punto del circuito (y aquí volvemos a simple trigonometría) basta con: (1) Saber en qué segmento está ese punto. (2) Sumar la distancia de todos los segmentos desde el inicial hasta ese. Descargar Fichero y RENOMBRARLO a ZIP (era demasiado grande ara adjuntarlo) o desde aquí.
__________________
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: 03-07-2006 a las 11:26:18. |
#14
|
|||
|
|||
Gracias :)
Muy buenas Netfali, tu ejemplo es perfecto, en vez de realizar el trazado del circuito a mano, ¿se podria realizar automaticamente?
Supongo que si hacemos que vaya recorriendo por la linea negra... Tengo un par de preguntas, que es la extension .map? tengo un par de archivos que nunca he podido ver porque tienen esa extension. Otra pregunta ¿de donde has sacado la imagen del circuito? ¿estan todos los circuitos del mundo en este tipo de imagenes? (me servirian), espero no causarte muchas molestias y de verdad te agradezco el tiempo que has dedicado. He visto que en el codigo de la aplicacion que has modificado, comprueba si estas encima del circuito mirando el color, seria posible que una vez definido el circuito, en vez de comprobar el color se comprobasen las coordenadas, ¿no? Espero poder utilizarlo en mi aplicacion.
__________________
{Saludos.} //Todos los dias se aprende algo nuevo, por que no enseñar nosotros? |
#15
|
||||
|
||||
Con el permiso de Neftali voy a responderte a alguna de tus dudas. La extension .map en este caso es un archivo de texto donde se guardar las coordenadas de los puntos. En otros caso puede contener lo que el programador crea oportuno.
En cuanto a lo de identificar si un punto esta o no en el circuito, pues el metodo es simple, con sus coordenadas vas a un archivo que actue como mapa, puede ser un bmp y identificar las zonas por colores o algun metodo similar. Última edición por seoane fecha: 06-06-2006 a las 13:26:37. |
#16
|
|||
|
|||
Gracias seoane por tu aclaracion, pero seria posible abrir un archivo con extension .map sin saber lo que contiene? es decir con que deberia abrir este archivo para poder ver su contenido, porque si contiene texto se podria abrir como un txt, y si contiene otro tipo de informacion?¿ (no se si esto sera posible)
P.D: me he dado cuenta que soy un pregunton xDD, pero esque me emociono cuando veo las cosas que se pueden hacer y quiero mas mas mas....
__________________
{Saludos.} //Todos los dias se aprende algo nuevo, por que no enseñar nosotros? |
#17
|
||||
|
||||
Puedes ver los bytes, pero si no conoces el formato del archivo de poco te puede servir. Este es un editor hexadecimal gratuito echo en delphi que te permitira abrir cualquier archivo y ver su contenido, pero solo eso, los bytes uno detras del otro.
PD: En esta pagina puedes encontrar el formato de muchos archivos, puede que te sea util en alguna ocasion Última edición por seoane fecha: 06-06-2006 a las 13:39:59. |
#18
|
|||
|
|||
Gracias le echare un vistazo.
__________________
{Saludos.} //Todos los dias se aprende algo nuevo, por que no enseñar nosotros? |
#19
|
||||
|
||||
Cita:
Cita:
Otra opción es buscarlo en la Web, que seguro que los encuentras todos (Montmeló, Jerez, Mónaco, Monza, Ímola, ...), e incluso puedes utilizar Google Earth.
__________________
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. |
#20
|
||||
|
||||
Cita:
__________________
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: 06-06-2006 a las 14:10:53. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Gráfica de curvas | lfidanza | Gráficos | 4 | 09-09-2010 04:42:05 |
como saber la linea en la que está el cursos en un TMemo | aranel | OOP | 3 | 17-10-2005 22:33:47 |
como saber numero de linea, nombre de archivo,funcion por codigo | orfeo | OOP | 0 | 30-07-2004 18:42:15 |
Tmemo Index(saber en que linea estoy) | Descendents | OOP | 2 | 12-12-2003 19:51:48 |
Saber índice de la línea en la que está el cursor en un Memo | fortran | OOP | 2 | 06-08-2003 17:12:10 |
|