Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - nostromo

#16
Desde ASP hay componentes de pago, que hay que instalar en el servidor web:
http://classicasp.aspfaq.com/general/how-do-i-access-my-server-s-registry-from-an-asp-page.html

Tambien se puede hacer a pelo en ASP creandote un objeto de servidor y usando las funciones que necesites del api de windows
Y en el caso de PHP tambien le puedes hacer una extensión al php. En ambos casos tienes que instalar los componentes en el servidor
web.

En el caso de que sea un Servidor de Aplicaciones en Java... pues haciendo un servlet que haga lo que quieras.... supongo que necesitarias una extensión mediante un metodo nativo.



#17
General Programadores / [C]Ejercicio
01 de Junio de 2008, 12:51:12 PM
Enhorabuena, ya ves que podías hacerlo tu solo.

Bienvenido al foro
#18
General Programadores / [C]Ejercicio
31 de Mayo de 2008, 10:18:48 PM
Y dime, con un ejercicio tan sencillo que esperas que te digamos... porque si te pongo aquí la solución que ganas tú.

Un consejo: inténtalo hacer tú mismo, es la mejor manera de empezar a aprender.

El código que has puesto lo tienes mal....  aunque parecido al bueno.

Un saludo
#19
Hola, asumo que estas con C o C++

Usando time.h de la librería estándar tienes algunas funciones útiles:

time_t mktime(   struct tm *timeptr  );
Que convierte lo que hay en tm a time_t que es la codificación interna de la fecha para la libreria. En una struct tm puedes indicarle hora,minutos... etc...

Pues conviertes las 2 fechas y digamos que obtienes time1 y time2.

Luego con
double difftime(    time_t timer1,   time_t timer0 );
obtienes los segundos entre una fecha y otra...
A partir de ahí empiezas a dividir para obtener días,horas y minutos  transcurridos entre las dos fechas.

CitarLos días, meses, años, horas y minutos que han pasado desde la fecha inicial a la otra.

Es imposible obtener los años y los meses, porque, ¿cuantos días tienen esos meses de diferencia? ¿cuantos días tienen los años entre las dos fechas? En fin, los meses cada uno tiene un numero de días y los años pueden ser bisiestos...

Un saludo
#20
General Programadores / [C++] Custom key para un map STL
28 de Mayo de 2008, 09:06:36 PM
Hola, creo que debes darle al map una función binaria. Como ejemplo:


bool funcionCompara(double x, double y) { return fabs(x) < fabs(y); }


Cambiando double por el tipo de la clave(key) del map. Y el código de comparación claro.

Un saludo
#21
Hola,

Creo que tengo algún enlace sobre esto...

Como referencia usaria este:
http://matthiasmueller.info/publications/sca03.pdf
Por cierto, como curiosidad en la implementación que describe este paper utilizan un grid. Como te comente en el otro hilo.

He llegado a este paper a traves de este sitio:
http://www.ss.iij4u.or.jp/~amada/fluid/
En este tienes codigo fuente.

Desgraciadamente la fisica de fluidos no es lo mio... y el tema me interesa desde hace mucho tiempo... pero aún me queda mucho por aprender(más calculo, metodos matematicos...)

Por cierto, espero que tengas mirado como implementar el algoritmo de "marching cubes".... cuando consigas mover las particulas lo necesitarás para que el render sea realista.

un saludo y suerte
#22
Programación gráfica / Sistemas de particulas + octree
13 de Mayo de 2008, 08:44:25 PM
Claro, te explico...

Un grid se basa en lo mismo que el octree, dividir el espacio en cubos. Pero sin usar un arbol, sino que se usa una matriz tridimensional donde cada elemento es un cubo y todos los cubos tienen el mismo tamaño. Cada cubo del grid es una lista de objetos(particulas en este caso) De ahi que ocupe más espacio que un octree.

Supongo que las particulas estan uniformemente distribuidas en el espacio porque sino no te solucionaría el problema,
Te explico como iria el tema.... aunque creo que entendiendo que es el grid ya sabrás por donde voy.

Supongamos que las particulas tienen coordenadas (x,y,z) donde tanto x,y,z están en el rango 0 a 127. El grid tiene longitud total de 128 y longitud de una arista del cubo(elemento del grid) de 16.
Con estos datos tenemos 8 x 8 x 8 = 512 cubos en el grid, donde 8= 128/16  

Digamos que el indice de cada cubo es (i,j,k). Lo sencillo es calcular a que cubo pertenece cada particula.
Seria i = x / 16 , j = y /16 y k= z / 16

Para actualizar una particula:
Calculamos a que cubo pertenecía según la antigua posicion de la particula y lo borramos de la lista de ese cubo, calculamos el nuevo cubo donde ira la particula y lo añadimos a su lista.

Ver las particulas vecinas es muy sencillo... digamos que la particula esta en el cubo (i,j,k)... pues vamos mirando las particulas de ese cubo y de los vecinos que necesitemos(i-1,j,k),(i+1,j,k) etc... incluso puede que la vecindad que necesites este en el mismo cubo de la particulas.

La lista de cubos puede ser un vector de 512 elementos y su indice (i+j*16+k*16*16) y si las dimensiones son multiplos de 2 los calculos se pueden simplificar mucho y ser mucho más rapidos.

Desventajas:
- Puede ocupar mucho espacio
- No es adaptativo. Si las particulas se acumulan en pocos cubos del grid tenemos un problema O(n^2) que es lo que quieres evitar.
#23
Programación gráfica / Sistemas de particulas + octree
13 de Mayo de 2008, 11:14:16 AM
Utiliza un grid para las partículas, si están confinadas en un espacio pequeño.... en fin, esto depende de lo que quieras hacer
El grid es muy fácil de actualizar y también es fácil listar las partículas vecinas; te quitará el problema de actualizar el octree....
Luego integra el grid con el mundo, mete el grid en un objeto contenedor(que no sea visible) y este contenedor en el octree del mundo.... esto hará que puedas eliminar el grid del proceso si no esta visible.

Lo malo es que el grid ocupa espacio... en fin, como he dicho antes depende de lo que quieras hacer

Un saludo
#24
Proyectos / California Office [ Video in-game ]
08 de Mayo de 2008, 07:50:26 PM
Cita de: "Loover"¿Puedes poner esa captura retocada, murciano? :)

Pero cuidado, que los personajes y demás objetos tendrán siempre el mismo tono de iluminación, así que excesivo contraste haría que resaltaran demasiado. Aparte que la estética del juego tampoco debe ser demasiado oscura... tiene que ser como una mansión mario :D

La captura retocada. :)

El problema que veo es que hay zonas de iluminación variable; y como tu comentas los personajes siempre tendrán el mismo nivel de luz... quedará raro.


#25
Proyectos / California Office [ Video in-game ]
08 de Mayo de 2008, 11:51:38 AM
Yo voto por el segundo(el antiguo).
En mi humilde opinión diría que le sobra luz a la escena; he hecho un pequeño retoque(photoshop) a la imagen con menos brillo/contraste y con focos en las mesas/escalera y le da un aire totalmente distinto.
#26
IndieLib / 7 pruebas de LooverLib - Necesito testers
29 de Febrero de 2008, 10:57:37 AM
Semprom 2200+ , 1GB RAM
Windows 2000 SP4
AGPx8 Nvidia 7600GS 256MB, DirectX 9.0c

Test 1: 2500 fps
Test 2: 1180 fps
Test 3: 1218 fps
Test 4: 1300 fps
Test 5: 630 fps (font)
Test 6: 256 fps (primitivas)
Test 7: 1330 fps

Scalabaza: 775-950 fps

No he observado ningún problema.
#27
Sobre el caso especial que le comentaba a senior wapo : 2 rectas con distancia negativa(hacia afuera) y absoluta menor que el radio.



Como vemos el circulo puede estar solapado o fuera... por eso decía que no es trivial... hay que verlo por casos


Saludos
Nostromo
#28
Cita de: "senior wapo"
Si se cumple para las 3 rectas necesariamente hay invasión. Hay que comprobar siempre y en todo caso las 3 rectas a menos que en una ya esté lo bastante alejado.

Si. Pero si se cumple(distancia negativa y absoluta menor que el radio) solo en dos rectas ¿hay invasión siempre? no siempre
No tengo tiempo ahora de pintar un ejemplo... más tarde a ver si puedo...

Lo de decir donde esta el circulo en mi solución solo es para aclarar los casos de prueba que es necesario hacer.

Un saludo
Nostromo
#29
Sobre la idea del triangulo ampliado:



El circulo de abajo a la derecha tiene el centro dentro pero esta fuera del triangulo original. (Según he estado dándole vueltas siempre cerca de los vértices están los casos especiales no triviales)
#30
Cita de: "senior wapo"Si la distancia del centro del círculo a al menos una de las 3 rectas que definen el triángulo es negativa y superior en valor absoluto al radio no hay invasión del triángulo.

Se asume que el lado positivo es el interior del triángulo, por ejemplo, tomando el orden de los vértices en el sentido de las agujas del reloj.

.

Esto es correcto pero incompleto. Por ejemplo que pasa si la distancia es negativa y en valor absoluto menor que el radio. ¿Hay invasion? Puede que si y puede que no.

El problema no es trivial, hay que tener en cuenta los diferentes casos.

Mi solucion(por casos):
- COLISION SI el triangulo esta dentro del circulo. (Implementación: Test facil con los vertices y el radio)
- COLISION SI el circulo esta completamente dentro del triangulo
PARA TODOS los segmentos del triangulo la distancia(por el lado hacia dentro del triangulo) al centro del circulo es mayor o igual a su radio.  
(Implementación: Test utilizando el pseudocodigo de senior wapo, distancia punto a recta)
- COLISION SI existen 2 o más puntos de intersección de la circunferencia con los segmentos del triangulo, contando las intersecciones con todos los segmentos. (Implementación: Test de intersección de segmento con circunferencia para todos los segmentos)

Saludos
Nostromo





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.