jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Diagramme de Voronoi Lun 23 Jan 2023 - 10:13 | |
| Adaptation du programme de papydall. Le tracé est instantané ! Note : la fonction "hypot" doit être renommée car "hypot" est un mot-clé mais valable uniquement en précision étendue (ce qui n'est pas le cas ici) - Code:
-
const w = 500, h = 500, num_sites = 25
dim nx%(num_sites), ny%(num_sites) dim nr%(num_sites), ng%(num_sites), nb%(num_sites) dim i%, j%, x%, y%, d, dmin, dmin1
randomize timer
for i = 0 to num_sites nx(i) = rnd * w ny(i) = rnd * h nr(i) = rnd * 255 ng(i) = rnd * 255 nb(i) = rnd * 255 next i
dmin1 = hyp(w - 1, h - 1)
mode 3, "Diagramme de Voronoi", 500, 500
for y = 1 to h for x = 1 to w dmin = dmin1 j = -1 for i = 1 to num_sites d = hyp(nx(i)-x, ny(i)-y) if d < dmin then dmin = d : j = i next i pen rgb(nr(j), ng(j), nb(j)) plot x, y next x next y
while inkey() = "" : wend
function hyp(a, b) return sqr(a * a + b * b) end_function
| |
|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Diagramme de Voronoi Lun 23 Jan 2023 - 14:12 | |
| Merci Jean. C'est INSTANTANE ! Ah! Si Panoramic pouvait être aussi véloce! | |
|
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Diagramme de Voronoi Sam 18 Fév 2023 - 16:58 | |
| Une variante avec : - définition de la fonction hyp par DEF - représentation des germes (points noirs) - Code:
-
' Diagramme de Voronoi ' https://fr.wikipedia.org/wiki/Diagramme_de_Voronoï
const w = 500, h = 500, num_sites = 25
dim nx%(num_sites), ny%(num_sites) dim nr%(num_sites), ng%(num_sites), nb%(num_sites) dim i%, j%, x%, y%, d, dmin, dmin1
def hyp(a,b) = sqr(a * a + b * b)
randomize timer
for i = 0 to num_sites nx(i) = rnd * w ny(i) = rnd * h nr(i) = rnd * 255 ng(i) = rnd * 255 nb(i) = rnd * 255 next i
dmin1 = hyp(w - 1, h - 1)
mode 3, "Diagramme de Voronoi", 500, 500
for y = 1 to h for x = 1 to w dmin = dmin1 j = -1 for i = 1 to num_sites d = hyp(nx(i)-x, ny(i)-y) if d < dmin then dmin = d : j = i next i pen rgb(nr(j), ng(j), nb(j)) plot x, y next x next y
pen CL_NOIR for i = 1 to num_sites pie nx(i), ny(i), 3 next i
while inkey() = "" : wend
| |
|
Contenu sponsorisé
| Sujet: Re: Diagramme de Voronoi | |
| |
|