![]() |
![]() |
| Paypal | 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
|
|||
|
|||
|
Gracias neftalí.
Si, algo así esta perfecto. De echo, es algo parecido a lo que ya tenía preparado y que he ido haciendo gracias a la ayuda del foro. El siguiente paso es obtener las coordenadas de esos puntos (en plan simple vale con que sean las coordenadas respecto a la imagen) y obtener un listado, de tal manera que luego se pueda usar esa lista para hacer que el programa calcule rectas, curvas, espirales o lo que sea. La verdad es que el componente ese tiene muy buena pinta. Yo encontré en algún sitio otra cosa que también me gustó, y es que dibujaba lineas entre los puntos, al estilo arcGIS, de tal forma que era facil ver cuanto se estaba acercando uno a la realidad de la curva, y si era necesario meter más puntos entre medias. Pero esto está fantástico. Muchas gracias de nuevo. Si me explicais como os paso el ejecutableque tengo en marcha. |
|
#2
|
|||
|
|||
|
Ahora estaba pensando, que seguro que hay cientos de librerias y componentes que se encargan de hacer todo tipo de cálculos y gráficos matemáticos como los que necesito, por lo que esa parte tampoco tendría por qué ser tan dura de preparar. Voy a ver que encuentro por la red...
Ya os cuento |
|
#3
|
||||
|
||||
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 |
|
#4
|
|||
|
|||
|
Oye, servira OpenGl para algo en este programa????
|
|
#5
|
||||
|
||||
|
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. |
|
#6
|
|||
|
|||
|
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 |
|
#7
|
||||
|
||||
|
Gracias, Rober01 por tu explicación...veo que yo estaba confundiendo las cosas.
Sería mejor que descanse esta noche... tuve un día de mucha acción cerebral y no dormi del todo bien anoche... Eso hizo que confundiera los términos. Tengo mi diminuto cerebro hecho ensalada. ¿Método de Newton? Ummmmm..... me está sonando.... se que en cálculo numérico algo vi. Y si no me equivoco debo tener todavía algunas que hojas de apuntes con algoritmos. Tendría que fijarme entre todas las carpetas... y hojas sueltas que tengo tirada en el armario. Si tengo un tiempo mañana, y si me acuerdo lo busco. Saludos, |
|
#8
|
||||
|
||||
|
Os pongo un pantallazo de la aplicación que empecé y que así ha quedado.
SAludos [img=http://img487.imageshack.us/img487/901/pantallazoeu7.th.jpg]
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#9
|
||||
|
||||
|
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. |
|
#10
|
||||
|
||||
|
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, |
|
#11
|
|||
|
|||
|
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. |
|
#12
|
||||
|
||||
|
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. |
|
#13
|
|||
|
|||
|
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!! |
|
#14
|
||||
|
||||
|
Cita:
. Te lo confirmo, se pueden instalar componentes de esa forma, y aparecen luego en la paleta de componentes. Pero la duda no es si instalar componentes es técnicamente posible, la duda es si instalarlos es legal.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ó ![]() |
|
#15
|
|||
|
|||
|
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. |
|
#16
|
||||
|
||||
|
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. |
![]() |
| 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 |
|