Fonction random

Tout ce qui concerne l'utilisation ou l'installation d'Asymptote.

Modérateur: gdm_asy

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Fonction random

Messagepar alekhine » Jeudi 21 Mai 2009, 15:32

Bonjour à tous,

pour simuler le jeu du "franc carreau", j'ai codé la figure suivante, où un disque est placé aléatoirement sur une grille.

Code: Tout sélectionner
import math;
unitsize(1cm);
real xrand() {return unitrand()*4;}
real yrand() {return unitrand()*3;}

path disque=circle((xrand(),yrand()),0.25);
filldraw(disque,red);

add(grid(4,3));


Malheureusement à chaque compilation le disque est à la même place.
Comment faire pour qu'à chaque compilation les coordonnées aléatoires changent de valeur ?

Merci.
Dernière édition par alekhine le Vendredi 22 Mai 2009, 10:58, édité 1 fois.
alekhine
Kilo-utilisateur
 
Messages: 225
Inscription: Samedi 18 Août 2007, 20:57
Localisation: Caen
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: [asy] fonction random

Messagepar GMaths » Jeudi 21 Mai 2009, 17:27

Code: Tout sélectionner
import animate;
import math;
settings.tex="pdflatex";

int nbimages = 10;
animation A;
int L=4,H=3;
real x,y;
path disque;
for(int k=0; k<nbimages; ++k) {
    picture pic;
    unitsize(pic,1cm);
    add(pic,grid(L,H));
    x=unitrand()*L;
    y=unitrand()*H;
    disque=circle((x,y),0.25);
    filldraw(pic,disque,red);
    A.add(pic);
}
label(A.pdf("controls",multipage=false,delay=200));


Le code précédent donne ceci :
random.pdf
(23.72 Kio) Téléchargé 137 fois


En remplaçant la dernière ligne par A.movie(keep=true), tu devrais avoir 10 images eps différentes.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: [asy] fonction random

Messagepar alekhine » Jeudi 21 Mai 2009, 17:45

Merci pour le code.
En compilant j'obtiens bien le même fichier pdf mais lrsque je passe la souris sur les liens fléchés, le pointeur se transforme en main mais rien ne se passe lorsque je clique.
Il y a un truc qui m'échappe.

[edit]
Les fichiers animate ne sont lisibles qu'avec acroread version > 7.
Dernière édition par alekhine le Vendredi 22 Mai 2009, 10:58, édité 1 fois.
alekhine
Kilo-utilisateur
 
Messages: 225
Inscription: Samedi 18 Août 2007, 20:57
Localisation: Caen
Statut actuel: Actif et salarié | Enseignant

Re: [asy] fonction random

Messagepar OG » Jeudi 21 Mai 2009, 20:31

Bonsoir

Pour l'histoire du nombre aléatoire qui est le même a chaque exécution,
c'est normal ! C'est du pseudo-aléatoire, du genre une suite d'entier
calculée modulo truc. Comme le premier terme de la suite est le même
à chaque exécution, on obtient toujours les mêmes tirages.
C'est du classique en programmation (même moi suis au courant).

Pour faire un tout petit plus aléatoire, il suffit d'initialiser cette suite
avec l'heure.
Ajouter en début du programme
Code: Tout sélectionner
srand(seconds());

donnera satisfaction.

Cordialement
O.G.
OG
Modérateur
 
Messages: 2285
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: [asy] fonction random

Messagepar alekhine » Vendredi 22 Mai 2009, 09:45

Merci c'est parfait :D
alekhine
Kilo-utilisateur
 
Messages: 225
Inscription: Samedi 18 Août 2007, 20:57
Localisation: Caen
Statut actuel: Actif et salarié | Enseignant


Retourner vers Asymptote

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Baidu [Spider] et 1 invité