Compare commits

...

5 Commits

Author SHA1 Message Date
tTh
98350ed6c6 more acurate doc 2024-02-01 17:40:18 +01:00
tTh
a8021a5713 logic error 2024-02-01 17:39:33 +01:00
tTh
c16269f4e8 test cbrt func 2024-01-31 11:11:50 +01:00
tTh
4f11c0e36a pimping... 2024-01-31 11:10:54 +01:00
tTh
cebe61b69b add .ssv files 2024-01-31 11:10:23 +01:00
4 changed files with 28 additions and 30 deletions

View File

@ -8,6 +8,7 @@ nbimg.inc
*.lst *.lst
*.wav *.wav
*.xyz *.xyz
*.ssv
frames/* frames/*
log.* log.*

View File

@ -41,17 +41,25 @@ Fabrication d'une population de bloubs plus ou moins aléatoires.
Deux paramètres : le nom du fichier (extention `.blbs`) Deux paramètres : le nom du fichier (extention `.blbs`)
et le nombre de bloubs désirés. et le nombre de bloubs désirés.
Les règles de génération *devraient* être paramétrables. Les règles de génération *devraient* être paramétrables.
[source](genbloubs.f90) ([source](genbloubs.f90))
### movebloubs ### movebloubs
Le cœur actif du système : c'est lui qui, à chaque tick, va déplacer Il ne fait que deux choses : à chaque tick, va déplacer
les bloubs, gérer les rebonds avec la boudary-box, éliminer les les bloubs et faire naitre de nouveaux bloubs
bloubs usés par les chocs, et faire naitre de nouveaux bloubs
si le besoin s'en fait sentir. 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. 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 ### 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. ce qu'il faut pour les différents moteurs de rendu.
**Le format de sortie est susceptible de changer sans préavis.** **Le format de sortie est susceptible de changer sans préavis.**
Bon, pour le moment, dans les formats il n'y a que POVray, 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 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, Povray pour utiliser les données exportées dans une scène,
par exemple le barycentre des bloubs. Et c'est très facile par exemple le barycentre des bloubs. Et c'est très facile
à faire avec un [script Awk](toinc.awk). à 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 ## TODO
- Concevoir un système de _bouding box_ facile à utiliser - Concevoir un système de _bouding box_ facile à utiliser

View File

@ -1,17 +1,11 @@
program essai program essai
use bloubspace ! use bloubspace
use mathstuff use mathstuff
implicit none implicit none
type(t_boundingbox) :: bbox
call load_boundingbox("WS/boundinboxes.dat", bbox, "cube ") call test_random(10)
print *, bbox
! call test_random(20)
STOP ': BECAUSE JOB IS DONE' STOP ': BECAUSE JOB IS DONE'
@ -21,17 +15,17 @@ program essai
subroutine test_random(nbre) subroutine test_random(nbre)
integer, intent(in) :: nbre integer, intent(in) :: nbre
integer :: foo, bar integer :: foo
real :: quux real :: quux, bar
double precision :: somme double precision :: somme
call init_random_seed() ! in module 'mathstuff' call init_random_seed() ! in module 'mathstuff'
somme = 0.0 somme = 0.0
do foo=1, nbre do foo=1, nbre
quux = rand() quux = 10.0 * rand()
somme = somme + quux somme = somme + quux
bar = mod(irand(), 7) bar = quux ** (.1/.3)
print *, foo, quux, somme/foo, bar print *, quux, bar, somme/foo
enddo enddo
end subroutine test_random end subroutine test_random
! -------------------------------------------------------------- ! --------------------------------------------------------------

View File

@ -20,16 +20,16 @@ BEGIN {
merged = $6 merged = $6
color = "Cyan" color = "Cyan"
if (age < 18) color = "Gray40"
if (age < 2) color = "Gray10"
if (merged) { if (merged) {
if (age > 120) color = "Orange" if (age > 100) color = "Orange"
else color = "Yellow" else color = "Yellow"
} }
else { else {
if (age > 120) color = "Black" if (age > 100) color = "Black"
else color = "Aquamarine" else color = "Aquamarine"
} }
if (age < 18) color = "Gray40"
if (age < 9) color = "Blue"
bx += $1 bx += $1
by += $2 by += $2
@ -43,7 +43,7 @@ BEGIN {
END { END {
# print "\t}\n" # print "\t}\n"
print "\t} // end of union\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 "}\n"
print "#declare Nb_Bloubs = ", count, ";\n" print "#declare Nb_Bloubs = ", count, ";\n"
print "#declare Bary_X = ", bx/count, ";"; print "#declare Bary_X = ", bx/count, ";";