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 |
#21
|
||||
|
||||
En el mismo sitio (link) de antes te he subido una versión con la lista de coordenadas locales de los puntos que vas añadiendo/borrando/moviendo.
__________________
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. |
#22
|
||||
|
||||
Espero aportar algo
Oregon, debo admitir que yo del tema mucho no sé. Estuve haciendo memoria y me acordé del método de Runge-Kutta. Que en pocas palabras toma dos puntos a y b. Y predice k puntos intermedios de acuerdo a una aproximación de primer, segundo, tercer o cuarto orden.
Se que lo tuyo es algo más complicado. Sobre todo si se trata de otros tipos de aproximaciones... sobre todo las del tipo logaritmicas y espirales ya de estos tipos no he oído hablar. Yo la verdad, es que (para empezar) estaba pensando en algo simple: Si se tiene una imagen y se toma el supuesto de que cada punto [X,Y] de la imagen puede expresarce en función. Algo como Y = f(X). Entonces para una serie de puntos (lo más próximos posibles) marcados, mediante algún método de interpolación le precedimos valores y para cada x mayor al punto inicial y menor al final. Luego repetir el proceso para los siguientes 2 puntos. Algo como esto: Código:
1. Tomar 2 primeros puntos: 1.1. Punto_inicial := Puntos(0); 1.2. Punto_final := Puntos(1); 2. Repetir hasta que no haya puntos a examinar 2.1. Aplicar Método de Ruge-Kutta según k-ésimos puntos a generar. 2.2. Para cada k-ésimo punto generado por Runge-Kutta: 2.2.1. Insertar en Puntos entre Punto_inicial y Final, siguiendo el k-ésimo orden. 2.3. Avanzar k lugares a Punto_inicial y Punto_final 3. Para cada punto en Puntos: 3.1. Calcular coordenada en imagen 3.2. Colocar punto y trazar línea desde el punto anterior A-k1-k2-k3-k4-B-k1-k2-k3-k4-C-..... Siendo A,B y C los puntos inicialmente cargado y entre cada uno de ellos los k generados. Espero que se entienda mi idea. Tal vez no se ajusta a lo que buscas, es que no estoy muy puesto en ese tema, pero es que mi poco conocimiento del tema no me permite más. No he visto el ejemplo que te envio Neftali pero si he visto pruebas del componente del que te habló. Saludos, |
#23
|
|||
|
|||
Delphius,
Sí, el método de Runge-Kutta es muy bueno para estas cosas, aunque de momento creo que sería complicar en exceso el objetivo el programa. En realidad, creo que aprovechando que tenemos la imagen de fondo el método más recomendable es colocar más puntos. Para ello se puede hacer zoom hasta el límite de la resolución de la imagen. De esa forma, no estamos interpolando, sino metiendo datos, lo que reduce los errores. Tal vez no haya explicado bien la idea. La cuestión es: la forma de las playas... ¿cual es su expresión matemática? ¿una ecuación linear y=ax+b? ¿tal vez de un grado mayor? ¿y=ax2+bx+c? O tal vez sigue una ecuación logarítmica,o exponencial? ¿tal vez es una función seno? ¿o una espiral?... Para ello, se parte de la imagen para obtener cuants mas puntos mejor de la curva (en este caso la playa), y se van haciendo intentos de ajustar cada una de esas ecuaciones hasta que una se ajuste a la perfección (o lo mejos posible). Por ello, no busc un método de interpolación, sino la obtención de una curva de cualquier tipo a una serie de puntos dados. O lo que es lo mismo, una regresión. Por otra parte, Neftalí, tu ejemplo me está gustando. El problema es que yo utilizo la versión gratuita de Delphi, en la que no se pueden instalar componentes. Y en este foro he visto que hay algo así como una puerta trasera, pero dado que no está claro su legalidad, pues no puedo usarlo. ¿habría alguna manera de hacer uso legal de ese código fuente de esos componentes para poder usarlo en mi proyecto? En cualquier caso, muchas gracias por los ejemplos, la verdad es que son muy ilustrativos, y resuelven gran parte de la parte inicial de adquisición de datos a partir de la imagen. Muchas gracias. |
#24
|
||||
|
||||
Cita:
Una alternativa que alguien comentó alguna vez y que creo que no está fuera de la legalidad es instalar los componentes en el paquete de usuario. No tengo Turbo Delphi instalado, así que no puedo probarlo, pero estaría bien que alguien que lo tenga lo confirmara. Así podrías instalar este componente legalmente. Se trata de revisar los packages instalados a ver si está el paquete de usuario (normalmente dclusrXXX.bpl); Si está lo siguiente es comprobar si está el DPK para poder modificarlo (dclusrXXX.dpk o dclusrXXX.dproj). Si esto no es posible (cuando alguien lo confirme), podemos usar la segunda alternativa, que es crear el componente en ejecución. Añade una cuantas líneas más, pero creo que no impide seguir con el proyecto. En ambos casos el resultado estaría dentro de lo legal. Un saludo.
__________________
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. |
#25
|
|||
|
|||
Muchs gracias neftali. Entonces a ver si encuentro algo más de informacion sobre como usar el paquete de usuario con el fin de meter ahí los compoenentes que necesito para esta parte del proyecto.
En cuanto sepaalgo más lo cuento. Gracias!! |
#26
|
||||
|
||||
Cita:
Por otro lado, no entiendo porque es tan necesario ese componente. Colocar puntos sobre una imagen, hacer zoom, pan, etc ... se puede hacer fácilmente por código. Puede que incluso con menos código que si hay que crear el componente a mano. De hecho creo que en algún hilo de oregon se trato alguno de esos temas, pero supongo que no le sirvió |
#27
|
|||
|
|||
Ciao Seoane,
Hombre secreto, secreto... llevo tiempo siguiendo la evolución de los hilos de este foro relacionados con el usar codigo fuente de otros componentes para usarlos con Turbo Delphi (version gratuita). Pero nunca lo he intentado hacer por esos debates que se han organizado respecto a la legalidad del asunto, que por tu comentario veo que no está nada claro. Si, es cierto que esto ya lo he discutido en otros hilos, y si que me sirvio en parte, aunque lo de obtener las coordenadas de esos puntos sobre la imagen se me atrancó, lo reconozco, pero no quería ser un pesado en aquel hilo y deje de preguntar. Pero gracias a los consejosque recibí en aquellos hios tengo una version inicial, aunque no del todo funcional. Perosupongo que el código fuente del ultimo ejemplo de neftalí me vendría de perillas para intentar sacar las coordenadas de los puntos. Pero el asunto de este hilo, no era discutir esas cosas, sino el ver si alguien se animaba a meterse en esto conmigo. Pero veo que no hay muchos voluntarios, aunque sí muy buenas intenciones e ideas (Gracias a todos!!) Supongo que acabaré recurriendo a algún estudiante de informática para proponerle este programa como proyecto de fin de carrera o algo así. O dejarlo irremediablemente para más adelante cuando tenga algo de tiempo para dedicarle a esto e ir haciendolo poco a poco. En cualquier caso, muchas gracias de verdad por todos los comentarios. |
#28
|
||||
|
||||
Cita:
Creo que la idea es no instalar paquetes completos. Pero que sí permita añadir un componente suelto si hace falta. Pero noestoy seguro de esto. Cita:
Hace no muchos días nos hemos estado divirtiendo con un hilo relativo a Mandalas y a cómo dibujar; Pero tú y yo sabemos de las limitaciones de ese modelo. Sobre todo cuando hay que borrar objetos (por ejemplo). También discutimos que para poder borrar, seleccionar, deshacer y cosas similares el modelo necesario es diferente del que utilizamos allí. Ya no basta con pintar puntos; Hace falta ir hacia otro camino. Es decir estructuras que mentengan los objetos y los repinten de forma eficiente. Necesitamos métodos de Selección (markets/Rubberbanding), redimensionado y los comentados antes, como selección, pan, zoom, guardar/restaurar, impresión y exportación. ¿Que se puede hacer? Sí. Que son un puñado de líneas. No. Y tampoco es trabajo para alguien que no está muy ducho en Delphi (como ha comentado el propio oregón). Está bien para hacer unas pruebas y practicar, pero si la idea es hacer un proyecto, porqué perder tiempo y esfuerzo en hacer algo qu alguien ya ha hecho y que no es nuestro objetivo. Recordemos que el objetivo final es otro.
__________________
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. |
#29
|
||||
|
||||
Cita:
Suerte con el componente ... |
#30
|
|||
|
|||
No os pegueis...
Tengo que daros la razón a ambos. Por una parte... si se puede programar con unas pocas lineas, es más divertido que usar un componente externo, y es mi forma de aprender. De hecho eso es lo que estaba haciendo hasta ahora con los zoom, el pintar los puntos, etc. Sin embargo, y llegados a un punto en el que el trabajo se complica, estoy de acuerdo con neftalí en que si ya hay componentes creados, para que perder el tiempo programando unos propios si son lo suficientemente buenos? Pensando en mi proyecto y en el que creo que tendré que seguir currándomelo yo, mi único problema ahora es calcular las coordenadas de cada punto (que yo uso una imagen), no solo para guardarlas, sino también para poder mover los puntos de sitio cuando se reescala la imagen de fondo, y que no queden descolocados. En eso el ejemplo de Neftalí es perfecto. tal vez con unas pocas lineas de código baste sin tener que instalar o usar componentes externos. Con eso se acabaría lamayor parte de los problemas que tengo encuanto a la adquisición de datos (puntos) del proyecto, y ya podríapegarme con los distintos métodos de regresión. |
#31
|
||||
|
||||
Cita:
Una vez en cada hilo, pero no pasa de ahí la cosa... He subido una versión en el mismo link donde estaba y además al FTP del Club Delphi (que por cierto ha sufrido una agradable remodelación) en la sección de ejemplos. Con el nombre Imagenes_y_puntos_con_TSimpleGraph.zip Tiene añadidas algunas opciones para añadir las líneas, ocultarlas y demás. Además ya no hace falta instalar el componente (aunque va el paquete para instalarlo), el proyecto que hay subido lo crea al iniciarse. También van los fuentes del componente (modificado) y los fuentes del ejemplo. Espero que te sea útil y que si haces avances vayas comentándolos y subiéndolos por 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. |
#32
|
|||
|
|||
Muchas gracias Neftalí.
me descargo ahora mismo los ficheros para echarles un vistazo. Pero dame tiempo, porque ando bastante apurado y tal vez no pueda probar nada en un mes o así. Pero de verdad que muchas gracias. Seguro que me es de mucha utilidad. Un saludo! |
#33
|
||||
|
||||
hola aqui de nuevo molestando....... estoy haciendo pruebas de como hacer este proyecto, pero si de matematicas estoy jjejejeje, pero seguire la evolucion de este post para ver la soluciones
|
#34
|
||||
|
||||
Cita:
Yo con los temas matemáticos ya no me atrevo. Si alguien se atreve a realizar interpolaciones a partir de los puntos, que se anime...
__________________
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. |
#35
|
|||
|
|||
Oregon,
Aqui un programa feeware de tratamiento de imagenes hecho integramente con Delphi, en el sitio tiene links a plug-ins y componentes Delphi q te pueden interesar, espero sirva.. Última edición por Delfino fecha: 07-06-2007 a las 19:08:04. |
#36
|
||||
|
||||
He leido Runge Kuta y me han dado escalofríos. Siempre me lo he imaginado gordo, con una argolla en la nariz cociendo estudiantes jovencitos, con la carne todavía blanda.
He leido el hilo y me parece interesante. En su día ya te mandé un embrión de una aplicación que empecé y nunca terminé por falta de colaboración del usuario, pero ha evolucionado y podría adaptarse. Si quieres te puedo mandar lo que tengo hasta ahora para que le eches un vistazo. Respecto a los datos que proporcionas, me falla la matemática, ya que no me acuerdo de mucho, pero le doy a dar una vueltilla a ver si puedo aportar algo. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#37
|
|||
|
|||
Hola
Oregon, una pregunta: ¿y si ajustas la curva usando cuadrados mínimos? ¿No sería más conveniente hacerlo de este modo? Se podría probar con varias curvas diferentes o con combinaciones de ellas y tomar aquella en la que el error sea menor. Saludos |
#38
|
|||
|
|||
Opinion!
Oye, servira OpenGl para algo en este programa????
|
#39
|
||||
|
||||
Cita:
Inconveniente: El método de mínimos cuadrados sólo se puede aplicar cuando existe una relación lineal (proporcional o inversamente proporcional). Ya que lo que hace estimar una RECTA y no una curva. Y como sabemos, no se consiguen buenas estimaciones con una recta. Por lo general se emplean curvas. Una playa puede tener muchas curvas, zig-zags. Imaginate una playa en forma de cerradura.... si se dá el caso, este método fallará pues la nuve de dispersión tendrá una forma circular (o lo que es lo mismo su covarianza será igual a cero) Aplicar el método de los mínimos cuadrado necesita evaluar TODODS los puntos en CONJUNTO... esto puede llegar a una lectura general erronea de la forma. Se necesita de un algoritmo iterativo, Del tipo "puntos a puntos", para conseguir lo que oregon necesita. Ya que el error conseguido será menor. Un algoritmo iterativo conseguirá predecir la dirección punto a punto. E incluso (ya para algo más grande) se podría llegar a desarrollar uno que aprenda: "Si la pendiente anterior es positiva trazar de seguir subiendo" Saludos, Última edición por Delphius fecha: 09-06-2007 a las 00:36:28. |
#40
|
|||
|
|||
Cita:
Algunos problemas de regresión no lineal pueden linealizarse mediante una transformación en la formulación del modelo. Por ejemplo, consideremos el problema de regresión no lineal (ignorando el término de error): Algunos problemas de regresión no lineal pueden linealizarse mediante una transformación en la formulación del modelo. Por ejemplo, consideremos el problema de regresión no lineal (ignorando el término de error): y= a exp(bx) Aplicando logaritmos a ambos lados de la ecuación, se obtiene: ln(y) = ln(a) + bx; Aunque es sumamente complicado podría aplicarse por tramos y luego obtenerse una función suma de todos los tramos de la curva. Pero también podría hacerse usando el algoritmo de gauss newton, éste se utiliza para resolver problemas no lineales de mínimos cuadrados. Es una modificación del método de optimización de Newton que nos usa segundas derivadas y se debe a Carl Friedrich Gauss. Saludos |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
necesito ayuda en un proyecto | estrella135 | Varios | 2 | 01-02-2007 16:09:39 |
Ayuda para un proyecto | SOAD_ | API de Windows | 0 | 22-01-2007 00:09:44 |
ayuda proyecto | alex_jf | Varios | 5 | 29-04-2006 01:43:48 |
ayuda para concluir mi proyecto | Maga84 | Varios | 2 | 29-05-2005 08:55:59 |
como anexar una ayuda CHM a un proyecto delphi | hhuillcen | Varios | 1 | 09-12-2003 18:34:02 |
|