Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-01-2013
Avatar de champy
champy champy is offline
Miembro
 
Registrado: sep 2003
Ubicación: Alicante, España
Posts: 75
Poder: 21
champy Va por buen camino
Gravitación Universal

Esto no es una duda, es simplemente algo que he hecho y me gustaría compartir con la comunidad por si a alguien le pudiese ser de utilidad o simplemente por su curiosidad.

Hace un par de días estaba repasando algo de teoría de gravitación universal y en un momento de lucidez me pregunté a mi mismo. ¿Es tan simple?

Es decir, si dibujase unos puntos en pantalla, les asumiese una masa y les aplicase las formulas de la gravedad F=G*(m1m2)/r^2 ¿Realmente los objetos se comportarían como vemos en el mundo real? Complejos patrones de lunas orbitando planetas... planetas orbitando soles...

Así que aquí está la prueba de que, sí, es cierto. Esta sencilla unidad permite crear multitud de pequeños objetos en pantalla que se comportarán conforme a las leyes del genial Newton, la mayoría de los objetos serán atraidos unos hacia otros y se fusionarán formando objetos más masivos pero siempre aparecerá algún "perdido" que por su velocidad no podrá ser absorvido por el otro y comenzará a describir órbitas elípticas.

Solo me apena la limitaión de número del objetos por la gran cantidad de cálculos que requiere, (todos los objetos hacia todos los objetos), en mi I5 puedo crear hasta unos 50-60 objetos antes de que empieze a relentizarse el programa, en un centrino por el contrario se relentiza con unos 8 objetos.

Si quereis, claro está sois muy libres de intentar mejorar el programa o su rendimiento, sería un honor para mi ^_^
Archivos Adjuntos
Tipo de Archivo: zip Graviton.zip (11,1 KB, 28 visitas)
Responder Con Cita
  #2  
Antiguo 20-01-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
champy,

Muy interesante

Revisa estos links:
Cita:
Gravedad pixelada
http://delphimagic.blogspot.com.es/2...-pixelada.html

Simulación del movimiento de burbujas
http://delphimagic.blogspot.com.es/2.../burbujas.html

Simulación del movimiento de los electrones en un campo electrico
http://delphimagic.blogspot.com.es/2...to-de-los.html

Simulación del enfriamiento de una partícula
http://delphimagic.blogspot.com.es/2...to-de-una.html
Espero sea útil

Nelson.
Responder Con Cita
  #3  
Antiguo 20-01-2013
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Muy curioso. Gracias por compartirlo. Y al compañero por los enlaces.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 20-01-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
.
Responder Con Cita
  #5  
Antiguo 21-01-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola champy.

Muy interesante, gracias por compartirlo

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 21-01-2013
Avatar de matabyte
matabyte matabyte is offline
Miembro
 
Registrado: ene 2008
Ubicación: Kyoto, Japon
Posts: 177
Poder: 17
matabyte Va por buen camino
Muy interesante, me lo apunto!
__________________
Donde Trabajo ahora --> http://cct-inc.co.jp/
Responder Con Cita
  #7  
Antiguo 21-01-2013
Avatar de champy
champy champy is offline
Miembro
 
Registrado: sep 2003
Ubicación: Alicante, España
Posts: 75
Poder: 21
champy Va por buen camino
Gracias, sé que no tiene ninguna utilidad tal como está pero es simple curiosidad.

He hecho algunas modificaciones para que se generen objetos aleatorios y para que se destruyan aquellos que se escapan de pantalla y nunca volveremos a ver.

Muy interesantes los links nlsgarcia, me llamó especialmente el de la gravedad pixelada por si podía mejorar algo mis funciones y la verdad que es muy llamativo, pero al revisar el código me he dado un pequeño chasco, no respeta ninguna regla de la realidad, casi todo su movimiento son "Randoms", eso si, es precioso
Archivos Adjuntos
Tipo de Archivo: zip graviton.zip (12,0 KB, 16 visitas)
Responder Con Cita
  #8  
Antiguo 21-01-2013
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Todo un clásico.

Yo también hice mi versión hace años. Una cosa curiosa, si pones muchos objetos en el centro, apelotonados, hay un "small-bang", o al menos en mi programa era así.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #9  
Antiguo 21-01-2013
Avatar de Julián
Julián Julián is offline
Merodeador
 
Registrado: may 2003
Ubicación: en mi casa
Posts: 2.019
Poder: 10
Julián Va por buen camino
He tenido que desempolvar una maquina virtual con win para poder verlo. Y me he tirao una hora poniendo poniendo puntitos .

Lo que dice ñuño de cuando pones muchos mas que un smallbang es todo un agugero negro que se traga cualquier cosa.

Ahora una sugerencia: deberías programarlo de modo que tuviera la opción de no tener que ir escribiendo los valores en el grid, así podría ir bastante mas fluido. Aunque en mi xp virtualizao he podido poner, al mismo tiempo, unos 200 puntos sin problema.

Un saludo!
__________________
"la única iglesia que ilumina es la que arde"
Anonimo
Responder Con Cita
  #10  
Antiguo 21-01-2013
Avatar de champy
champy champy is offline
Miembro
 
Registrado: sep 2003
Ubicación: Alicante, España
Posts: 75
Poder: 21
champy Va por buen camino
Uy! si Julian, mira, en mi segundo post he puesto una version en la que el grid incluso desaparece.

Los objetos se crean de dos maneras, puedes hacer click en el TImage para crearlos o incluso activar la opcion de "generacion automatica" y el va generando objetos random cuando hay menos el minimo establecido.

Tambien Autodestruye aquellos que se alejan demasiado para no perder tiempo en calcular objetos que se han perdido para siempre.

Si quieres cambiar los valores de un objeto en lugar de ir al grid, puedes clickarlo. Aparecerá un menu donde puedes variar sus coordenadas, velocidades y masa.
Incluso puedes "frenarlo" para que seá un objeto estatico y no se escape por el empuje gravitatorio de los demas objetos.

Última edición por champy fecha: 21-01-2013 a las 17:58:24.
Responder Con Cita
  #11  
Antiguo 21-01-2013
Avatar de champy
champy champy is offline
Miembro
 
Registrado: sep 2003
Ubicación: Alicante, España
Posts: 75
Poder: 21
champy Va por buen camino
El asunto de la cercanía extrema de los objetos es algo con lo que ya he peleado cuando hacía esta versión. Como dice ñuño pasan cosas extrañas y esto creo que se debe a la denominada "Singularidad" http://es.wikipedia.org/wiki/Singula...spaciotemporal

Es simple, si la fuerza es el producto de las masas entre el cuadrado de la distancia. (M1*M2) / d^2, ¿Que ocurre cuando la distancia es 0? no se puede dividir por 0, no es que el programa esté mal o que realmente pase eso, es que los humanos somos limitados y nuestras matemáticas no permiten hacer esa operación.

Así que si no controlas esa distancia destruyendo y fusionando los objetos pueden ocurrir cosas extrañas distintas de la realidad, velocidades imposibles a los objetos o incluso error del programa (Div 0)
Responder Con Cita
  #12  
Antiguo 21-01-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
champy,

Revisa este link:
Cita:
Simulador de gravedad (flash): http://www.nowykurier.com/toys/gravity/gravity.html
Espero sea útil

Nelson.
Responder Con Cita
  #13  
Antiguo 21-01-2013
Avatar de champy
champy champy is offline
Miembro
 
Registrado: sep 2003
Ubicación: Alicante, España
Posts: 75
Poder: 21
champy Va por buen camino
Me encanta ^^ veo que es básicamente el mismo software pero en el suyo los objetos comienzan con una velocidad angular que les hace entrar en órbita ya desde el principio. Muy bueno. Intentaré ver el código fuente a ver si puedo aprender algo.
Responder Con Cita
  #14  
Antiguo 04-02-2013
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por Julián Ver Mensaje
Lo que dice ñuño de cuando pones muchos mas que un smallbang es todo un agugero negro que se traga cualquier cosa.
Leñes, pues en mi versión no pasa eso. Tendré que desempolvarla y revisarla, a ver si me estoy equivocando.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #15  
Antiguo 04-02-2013
Avatar de champy
champy champy is offline
Miembro
 
Registrado: sep 2003
Ubicación: Alicante, España
Posts: 75
Poder: 21
champy Va por buen camino
Compartela si quieres y le damos un vistazo entre todos. Yo estaba pensando si utilizar OpenGL y pasar el mio a 3D, podría ser curioso.
Responder Con Cita
  #16  
Antiguo 05-02-2013
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Dos cosas:
1) Se obtiene mejores resultados si se hace uso de DoubleBuffered
2) Cuando se está trabajando con números muy chicos o muy grandes es deseable emplear la función Hypot; que por cierto dicho sea de paso Delphi ya la tiene implementada (al menos desde D6). Parece ser que a muchos se les escapa este detallito.

Lo demás sería pulir un poco el código, que hay partes que se podría mejorar, e incluso algunos cálculos redundantes.
Por lo demás, interesante.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #17  
Antiguo 06-02-2013
Avatar de champy
champy champy is offline
Miembro
 
Registrado: sep 2003
Ubicación: Alicante, España
Posts: 75
Poder: 21
champy Va por buen camino
Si quieres mejorar algo Delphius, eres libre de hacerlo, es más, hasta te lo agradecería. Seguro que algo se puede aprender despues revisando las modificaciones.

Un lugar donde sé que se están haciendo cálculos redundantes es a la hora de calcular la fuerza entre dos objetos si esta fuerza ya se había calcula en dirección opuesta y el resultado es exactamente el mismo, me explico.

3 objetos 1, 2, 3, calculo las fuerzas entre ellos
1 -> 2 = 1N
1 -> 3 = 1N
En el segundo ya tengo algún cálculo repetido
2 -> 1 = 1N <- Este calculo sería prescindible puesto que ya se había obtenido esta fuerza en 1-> 2
2 -> 3 = 1N
En el tercer objeto
3 -> 1 = 1N <- Prescindible, ya la sabiamos de antes
3 -> 2 = 1N <- Prescindible, ya la sabiamos de antes

Esto eliminaría como la mitad de los cálculos, aunque no sé muy bien como implementarlo
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Form De Busqueda Universal microbiano Conexión con bases de datos 1 14-02-2010 23:28:13
Cargador universal para teléfono móvil Casimiro Notevi La Taberna 6 27-09-2007 11:51:11
Convertidor universal online de formatos Casimiro Notevi Noticias 10 06-11-2006 13:12:51
Ordenar (ch ll ) tabla dbase por orden alfabetico latino universal javi90 Conexión con bases de datos 0 16-02-2005 18:34:39
El proyecto Google o el sueño de la biblioteca universal marcoszorrilla Noticias 1 16-12-2004 23:30:05


La franja horaria es GMT +2. Ahora son las 20:58:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi