Compare commits
5 Commits
6eac66c818
...
98350ed6c6
Author | SHA1 | Date | |
---|---|---|---|
|
98350ed6c6 | ||
|
a8021a5713 | ||
|
c16269f4e8 | ||
|
4f11c0e36a | ||
|
cebe61b69b |
1
BloubWorld/.gitignore
vendored
1
BloubWorld/.gitignore
vendored
@ -8,6 +8,7 @@ nbimg.inc
|
||||
*.lst
|
||||
*.wav
|
||||
*.xyz
|
||||
*.ssv
|
||||
frames/*
|
||||
log.*
|
||||
|
||||
|
@ -41,17 +41,25 @@ Fabrication d'une population de bloubs plus ou moins aléatoires.
|
||||
Deux paramètres : le nom du fichier (extention `.blbs`)
|
||||
et le nombre de bloubs désirés.
|
||||
Les règles de génération *devraient* être paramétrables.
|
||||
[source](genbloubs.f90)
|
||||
([source](genbloubs.f90))
|
||||
|
||||
### movebloubs
|
||||
|
||||
Le cœur actif du système : c'est lui qui, à chaque tick, va déplacer
|
||||
les bloubs, gérer les rebonds avec la boudary-box, éliminer les
|
||||
bloubs usés par les chocs, et faire naitre de nouveaux bloubs
|
||||
Il ne fait que deux choses : à chaque tick, va déplacer
|
||||
les bloubs et faire naitre de nouveaux bloubs
|
||||
si le besoin s'en fait sentir.
|
||||
Seul problème, il n'a pas de notion directe du temps, parce qu'il est juste de passage dans un pipeline.
|
||||
[source](movebloubs.f90)
|
||||
([source](movebloubs.f90))
|
||||
|
||||
### mergebloubs
|
||||
|
||||
Le cœur actif du système : c'est lui qui, à chaque tick, va
|
||||
gérer les rebonds avec la boudary-box, éliminer les
|
||||
bloubs usés par les chocs, gérer les fusions de bloubs
|
||||
(avec plein de mathstuff dedans) et assurer l'équilibre
|
||||
global du système...
|
||||
C'est sur cette partie qu'il y a des améliorations à trouver.
|
||||
([source](mergebloubs.f90))
|
||||
|
||||
### exportbloubs
|
||||
|
||||
@ -60,19 +68,14 @@ reprise par un (ou des) scripts écrits en `awk`, afin de générer
|
||||
ce qu'il faut pour les différents moteurs de rendu.
|
||||
**Le format de sortie est susceptible de changer sans préavis.**
|
||||
Bon, pour le moment, dans les formats il n'y a que POVray,
|
||||
mais Gnuplot et/ou Rdata arriveront bien un de ces jours.[source](exportbloubs.f90)
|
||||
mais Gnuplot et/ou Rdata arriveront bien un de ces jours.
|
||||
([source](exportbloubs.f90))
|
||||
|
||||
Un exemple : l'idée est de générer un fichier `.inc` pour
|
||||
Povray pour utiliser les données exportées dans une scène,
|
||||
par exemple le barycentre des bloubs. Et c'est très facile
|
||||
à faire avec un [script Awk](toinc.awk).
|
||||
|
||||
### mergebloubs
|
||||
|
||||
Alors, celui-ci, il n'est pas vraiment au point. Il faut tout ré-écrire
|
||||
et faire gaffe à l'explosion quadratique.
|
||||
[source](mergebloubs.f90)
|
||||
|
||||
## TODO
|
||||
|
||||
- Concevoir un système de _bouding box_ facile à utiliser
|
||||
|
@ -1,17 +1,11 @@
|
||||
program essai
|
||||
|
||||
use bloubspace
|
||||
! use bloubspace
|
||||
use mathstuff
|
||||
implicit none
|
||||
|
||||
type(t_boundingbox) :: bbox
|
||||
|
||||
call load_boundingbox("WS/boundinboxes.dat", bbox, "cube ")
|
||||
|
||||
print *, bbox
|
||||
|
||||
|
||||
! call test_random(20)
|
||||
call test_random(10)
|
||||
|
||||
|
||||
STOP ': BECAUSE JOB IS DONE'
|
||||
@ -21,17 +15,17 @@ program essai
|
||||
|
||||
subroutine test_random(nbre)
|
||||
integer, intent(in) :: nbre
|
||||
integer :: foo, bar
|
||||
real :: quux
|
||||
integer :: foo
|
||||
real :: quux, bar
|
||||
double precision :: somme
|
||||
|
||||
call init_random_seed() ! in module 'mathstuff'
|
||||
somme = 0.0
|
||||
do foo=1, nbre
|
||||
quux = rand()
|
||||
quux = 10.0 * rand()
|
||||
somme = somme + quux
|
||||
bar = mod(irand(), 7)
|
||||
print *, foo, quux, somme/foo, bar
|
||||
bar = quux ** (.1/.3)
|
||||
print *, quux, bar, somme/foo
|
||||
enddo
|
||||
end subroutine test_random
|
||||
! --------------------------------------------------------------
|
||||
|
@ -20,16 +20,16 @@ BEGIN {
|
||||
merged = $6
|
||||
|
||||
color = "Cyan"
|
||||
if (age < 18) color = "Gray40"
|
||||
if (age < 2) color = "Gray10"
|
||||
if (merged) {
|
||||
if (age > 120) color = "Orange"
|
||||
if (age > 100) color = "Orange"
|
||||
else color = "Yellow"
|
||||
}
|
||||
else {
|
||||
if (age > 120) color = "Black"
|
||||
if (age > 100) color = "Black"
|
||||
else color = "Aquamarine"
|
||||
}
|
||||
if (age < 18) color = "Gray40"
|
||||
if (age < 9) color = "Blue"
|
||||
|
||||
bx += $1
|
||||
by += $2
|
||||
@ -43,7 +43,7 @@ BEGIN {
|
||||
END {
|
||||
# print "\t}\n"
|
||||
print "\t} // end of union\n"
|
||||
print "finish { phong 0.67 specular 0.57 }\n"
|
||||
print "finish { phong 0.57 specular 0.67 }\n"
|
||||
print "}\n"
|
||||
print "#declare Nb_Bloubs = ", count, ";\n"
|
||||
print "#declare Bary_X = ", bx/count, ";";
|
||||
|
Loading…
Reference in New Issue
Block a user