• Jueves 14 de Noviembre de 2024, 03:51

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.


Mensajes - Elden

Páginas: [1]
1
C/C++ / Re: Reservar Memoria Para Array De Estructuras
« en: Domingo 12 de Marzo de 2006, 01:14 »
Mil perdones, lo que contestado no tiene nada que ver.

No sé de donde mi cabeza se ha sacado esas cosas de matrices irregulares.

2
GNU/Linux / Gestor De Arranque
« en: Sábado 11 de Marzo de 2006, 23:03 »
Buenas,

Tengo instalado el gag:

-Para la partición de windows no hay ningún problema.

-Pero para la de linux no la quiere arrancar, creo que necesito que sea primaria y que además tenga instalado el lilo(o grub) en esa partición ( en la que esta linux, no sé si en la / ó en /boot , por favor aclarenme la duda)



Mi problema es que no tengo disquet de arranque, ¿Cómo demonios inicio linux? , he probado con el cd de instalación(no hay manera), con el grub super disk y con mil cosas más...

Mi intención sería iniciar (aún no se como) linux y poder ejecutar el lilo

Se trata de fedora core 4, muchas gracias

3
Allegro / Re: Detectar Colision Y Crear Un Disparo
« en: Sábado 11 de Marzo de 2006, 20:25 »
Lo de la bala, es cierto que podrías mirártelo un poco más por tu cuenta (yo creo que te hace falta leerte unos cuantos libros de programación).

Lo de las colisiones ya es un tema más delicado, te diré que existen varias maneras de hacerlo:

1----Colisión geométrica predefinida

-------------(entre 2 cuadrados): Suponiendo el cuadrado 1(x1,y1,w1,h1) y el cuadrado 2(x2,y2,w2,h2)  (x e y son las coordenadas) (w es la anchura) (h es la altura)  Colisionan si:  
Código: Text
  1.  
  2. ((x1+w1) >= x2) && (x1 <= (x2+w2)) && ((y1+h1) >= y2) && (y1 <= (y2+h2))
  3.  
  4.  

------------(entre 2 círculos): circulo 1 (x1,y1,r1) y circulo 2 (x2,y2,r2)
Colisionan si:
Código: Text
  1.  
  2. int dx = x1 - x2;
  3. int dy = y1 - y2;
  4. dx *= dx;
  5. dy *= dy;
  6. (Sqrt(dx+dy) < (r1+r2))
  7.  
  8.  

------------------(etc...):
ahora mismo se me ocurren mil más (entre rombos, elipses, etc...) aunque si sabes un poco de mates podrías deducirlas todas, si te interesa alguna en especial pregúntame




2------Colisión geométrica por listas de vértices:
Existen algoritmos que saben comprobar si 2 listas de vértices se intersectan, podrías descomponerlos en triángulos por ejemplo.





3------Colisión por mascara de bits:
Según mi gusto la mejor, además se puede acelerar por hardware, básicamente consiste en comprobar si un bitmap colisiona con otro viendo si se solapan pixels.




Hay buenos manuales de colisiones por ahí, si te interesa algún caso particular coméntame.

Un saludo.

4
C/C++ / Re: Reservar Memoria Para Array De Estructuras
« en: Sábado 11 de Marzo de 2006, 15:06 »
Según he leido lo que quiere conseguir es una matriz irregular de nodos.
Si no es así , pido perdón.


Para crear una matriz irregular de nodos deberías usar lo siguiente.

Suponemos una estructura nodo , además está con typedef

Código: Text
  1.  
  2. nodo **nodos; //la matriz se llamara nodos, nodos[a][b] fila a columna b
  3.  
  4. //definimos el número de columnas o filas, según tu representación mental
  5. //NUMA es el número que quieres
  6. nodos = (nodo**)malloc(sizeof(nodo*)*NUMA);
  7.  
  8.  
  9. //ahora creamos realmente los nodos
  10. for(int i=0;i<NUMA;i++)
  11.     nodos[i]=(nodo*)malloc(sizeof(nodo)*NUMB);
  12.  
  13.  
  14. //NUMB no tiene por que ser constante , podríamos haber puesto i por ejemplo para crear una matriz en forma triangular
  15.  
  16.  

La idea es esta:

Nodos
|------>Nodo1,nodo2,nodo3
|------>nodo4,nodo5
|------>nodo6
|------>Null

Nodos es un array de punteros a nodo, en este caso de 4 punteros,

además si te fijas es una matriz irregular puesto que no todas las filas tienen el mismo número de elementos.

Suerte.
PD: Luego tendrás que liberar TODO lo que has cogido

5
C/C++ / Re: Temporizador: Gettime();
« en: Sábado 11 de Marzo de 2006, 14:53 »
Aunque no se muy bien que hace esa función, supongo que es la homónima en linux gettimeofday(struct timeval *tv,struct timezone *tz);

incluso existe una que cuenta el número de ciclos (de usuario y de sistema) que lleva corriendo tu proceso -times


Gracias
*PD: de todas formas cualquier duda, si usted tiene linux puede consultar el manual.

Páginas: [1]