IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

Distribution uniforme sur la surface d'un cône


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 99
    Points : 52
    Points
    52
    Par défaut Distribution uniforme sur la surface d'un cône
    Bonjour,

    nous développons un logiciel de calcul scientifique capable de simuler l'émission de particules physique (electron, proton,...) depuis la surface d'une forme 3D.

    Le cas du cône comme source (entier, tronqué et/ou avec épaisseur) nous pose problème. En effet, pour avoir un tirage uniforme de points sur la surface latérale externe (ou interne dans le cas avec épaisseur), il faut effectuer un tirage aléatoire de la position sur la hauteur du cône. Or cette distribution sur la hauteur ne peut pas être simplement tirée entre 0 et H de manière linéaire, car la probabilité de trouver un point prés de la base du cône (h proche de 0) est plus élevée que celle de trouver un point prés du sommet (h proche de H). Comment svp mettre en équation cette distribution de probabilités sur la hauteur du cône. Il doit certainement être question de racine carrée et d'une dépendance au rayon du cône, mais nous ne trouvons pas la bonne solution.

    Merci pour votre aide, voila plusieurs jours que nous planchons sur ce problème, les sites internet traitant de ce sujet ne présentent qu'un tirage linéaire sur la hauteur du cône, ce qui est forcément erroné quand on veut une distribution uniforme sur la surface du cône.

  2. #2
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 423
    Points : 8 699
    Points
    8 699
    Billets dans le blog
    43
    Par défaut
    Je ne pense pas que ce post soit à sa place dans la rubrique Jeux Vidéos, mais je vois déjà quelques pistes pour obtenir la formule de la distribution recherchée.

    Si on se donne un cône de rayon R et de hauteur h, il est facile d'obtenir sa surface latérale S.
    Ensuite, je pense qu'il est plus facile de raisonner en terme de fonction de répartition plutôt qu'en terme de distribution (qui pourra être déduite par dérivation).

    En effet, pour un cône donné, la fonction de répartition recherchée doit correspondre, à une normalisation près, au rapport surface partielle / surface totale en partant du sommet du cône.

    Il faut "juste" se donner la peine de faire les calculs
    Tutoriels et FAQ TypeScript

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 99
    Points : 52
    Points
    52
    Par défaut
    Merci pour l'intérêt que vous portez à ma question !

    La fonction de répartition que vous décrivez est au point : elle permet de choisir la surface émettrice parmi les 4 surfaces du cône avec épaisseur : latérale extérieure, latérale intérieure, anneau supérieur et inférieur), en fonction des surfaces partielles comparées à la surface totale.
    Ensuite il faut déterminer de manière uniforme un point sur la surface sélectionnée. Pour les surfaces supérieures et inférieures, pas de problème, la distribution est calculée suivant une loi racine carrée pour le rayon et linéaire pour l'angle. Par contre, notre problème se situe au niveau du choix de la position sur les surfaces latérales pour obtenir une distribution uniforme. Il y a une loi à appliquer pour le tirage aléatoire de la hauteur et c'est là que le bât blesse... Une idée peut-être ?! Merci

  4. #4
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 423
    Points : 8 699
    Points
    8 699
    Billets dans le blog
    43
    Par défaut
    Je ne suis pas sûr que nous parlions de la même fonction de répartition : cf. Wikipédia

    Sinon, la fonction de répartition caractérisant la distribution uniforme selon la surface latérale d'un cône a la formule suivante :
    Formule mathématique
    tel que t est le pourcentage de la hauteur totale du cône à considérer compris entre 0 et 1 avec t = 0 au sommet du cône (l'origine).

    On a ainsi la probabilité :
    Formule mathématique

    Ainsi, la probabilité de tirer un point dans la première moitié supérieure du cône (la moitié qui inclue le sommet) est de :
    Formule mathématique
    Soit 25% de chance de tirer un point dans cette première moitié supérieure du cône et donc 75% de chance de tirer un point dans la seconde moitié inférieure du cône.
    Tutoriels et FAQ TypeScript

Discussions similaires

  1. Distribution de point à distance uniforme dans une surface carrée
    Par Gannon dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 17/06/2013, 16h32
  2. Réponses: 2
    Dernier message: 30/03/2007, 13h17
  3. Réponses: 4
    Dernier message: 26/09/2006, 18h18
  4. [VMR9][D3D9]ecrire un texte sur une surface
    Par drizztfr dans le forum DirectX
    Réponses: 2
    Dernier message: 13/11/2003, 15h06
  5. Effet Fade In / Fade Out sur une surface DirectDraw
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 08/09/2002, 17h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo