Skip to main content

Un poco más de flocking

Después de un par de tardes trabajando en el tiempo libre sobre la demo de flocking he consegido ya algo un poco más respetable.

Finalmente he conseguido superar algunos de los problemas que me he encontrado a la hora de implementar el algoritmo correctamente. Entiendo correctamente al hecho de que los componentes de la manada sólo tomen como referencia a sus vecinos más cercanos y no al conjunto global como estaban haciendo hasta ahora.

De todos modos, esta implementación aún puede mejorarse muchísimo, añadiendo acciones de no comportamiento, dimensión Z y sobre todo, dandole un pequeó enfoque de juego que aproveche el algoritmo. Si tengo tiempo intentaré darle un par de vuelta más. De momento aquí dejo lo que tengo hecho.


Adjunto el ejecutable en formato zip.

flocker2x


El video del ejemplo:

Y los algoritmos en pseudocódigo.

REGLA DE COHESIÓN:

 PROCEDURE rule1(boid bJ)
Vector pcJ
FOR EACH BOID b
IF b != bJ THEN
pcJ = pcJ + b.position
END IF
END
pcJ = pcJ / N-1
RETURN (pcJ - bJ.position) / 100
END PROCEDURE

REGLA DE REPULSIÓN:

 PROCEDURE rule2(boid bJ)
Vector c = 0;
FOR EACH BOID b
IF b != bJ THEN
IF |b.position - bJ.position| < c =" c">J.position)
END IF
END IF
END
RETURN c
END PROCEDURE

REGLA DE ALINEAMIENTO:

 PROCEDURE rule3(boid bJ)
Vector pvJ
FOR EACH BOID b
IF b != bJ THEN
pvJ = pvJ + b.velocity
END IF
END
pvJ = pvJ / N-1
RETURN (pvJ - bJ.velocity) / 8

END PROCEDURE

Comments

Popular posts from this blog

Un grupo rarito

Siempre nos han considerado un grupo raro. Las madres de algunos conocidos nuestros no entendían que podíamos hacer en aquel viejo local alquilado donde solíamos reunirnos día si y día también. Sólo una cosa estaba clara, no debía ser nada bueno, con la de discotecas que habia para elegir..., y nosotros allá dentro. Todo esto acabó acarreandonos fama de raritos. Ay!, que facil es mal pensar. Principalmente el local fue un punto de reunión fijo del grupo de amigos. Entre todos los delitos que cometimos, uno fue jugar al rol, ese juego de interacción social. Para los que no sabían que era eso del rol no importó, sonaba mal, en la tele decían que era peligroso. Ese fue nuestro estigma. Después de mucho tiempo ese estigma aún perdura, apareciendo de vez en cuando en las conversaciones ajenas; creo que lo hará por siempre. Las mentes cerradas no comprueban sus juicios. Difícil será hacerle entender a esa señora que mientras su hijo se ponía de ácidos en la discoteca hasta llegar a alterar s...

Himno de Teleco

Himno de la carrera de ingeniería de Telecomunicaciones, al más puro estilo Dragon Ball. Para echarte unas risas. Aviso de antemano: el humor de la canción está dirigido exclusivamente a estudiantes de Telecomunicaciones, ingenieros de ídem o a cualquiera que tenga unos conocimientos básicos (universitarios) sobre señales y sistemas. Vamos con Payán, todos a la vez a buscar con ahínco un sistema de transmisión. Sin duda será, convencido estoy, lineal, invariante y sin distorsión. Este mundo es como un filtro ideal donde hay escondido un suspenso en él. Como un filtro multicolor con un cero de transmisión, como una variable aleatoria con toda su gran inversión, el proceso empieza ahora, ¡vamos a filtrar, filtrar, filtrar, filtrar, filtrar! Hallaremos su covarianza y también su correlación, con la respuesta al impulso hallaremos convolución, el filtro sin distorsión será al fin nuestro, oh. Integrémoslo por Fourier, unidos a Gauss no hay que temer pues tenemos el DSP, ¡que no sirve p...

NSLU2 y Debian

Últimamente le estaba dando vueltas a la cabeza pensando como podría instalarme un eMule en un equipo que pudiera estar encendido toda la noche y a ser posible, sin ventiladores. Estuve mirando placas Epia mini - atx pero el equipo entero resultaba por unos 300€ como mínimo y era demasiado pa mi body . Al fin dí con la solución... NSLU 2!. El NSLU 2 es un dispositivo creado por Linksys . Este aparatito simplemente es un servidor de ficheros compartidos en red mediante SMB . Puede compartir tanto pendrives flash como discos duros. La gestión se realiza mediante un interfaz web , como cualquier router de hoy en día. El Slug (nombre de serie NSLU 2) es un servidor ideal para dejar encendido todo el día, consume 8W/hora, es muy silencioso (no tiene ventiladores) y tiene un tamaño muy reducido.Tiene 2 puertos USB y tarjeta de red RJ 45. Su precio es de 99€ y para las funciones que realiza puede parecer un poco caro. Pero ahora viene la gracia... ¿Si os digo que su procesador es un...