2010-04-19 27 views
2

Je voudrais générer des points aléatoires sur une boîte 3D définie par ses coins (minx, miny, minz) et (maxx, maxy, maxz). Je pensais à générer un point aléatoire à l'intérieur de la boîte, puis en le projetant sur l'un des côtés de la boîte. Cependant, je n'ai pas d'informations de plan explicites pour les côtés de la boîte et cela semble ne pas produire une distribution uniforme des points car si certains côtés de la boîte sont plus grands que d'autres, ces côtés devraient générer plus de points.génération uniforme de points sur la boîte 3D

Toutes les suggestions sont appréciées.

Merci.

Répondre

3
  1. Sélectionner un côté au hasard weighted by it's area (spare link ou this one ...)
  2. Placer un point sélectionné de façon aléatoire à partir d'une distribution uniforme de ce côté
  3. Lather, rincer, répéter.

ou alternativement

  1. décider de la densité de points
  2. Populate chaque côté à son tour avec un ensemble aléatoire de points ayant cette densité

qui est plus uniforme (à savoir moins aléatoire) mais semblera bien tant que la densité est assez élevée pour que chaque côté ait plus d'une poignée de points

+0

Merci pour il aide. Cela semble générer des points sur les faces de la boîte, en ignorant les arêtes et les sommets. Des conseils sur la façon dont je peux incorporer des arêtes et des sommets? – Myx

+0

@Myx: "Sur" les bords et les sommets constituent très peu de la surface disponible (infinitésimale dans la limite des points réels, mais finie pour "points"), donc une diffusion aléatoire ne les touchera pas beaucoup. Assurez-vous que vous générez à travers les limites * inclusives * de la figure. C'est-à-dire que si la longueur est 'l', à la fois' 0' et 'l' sont admis dans le PRNG. Si vous voulez * vraiment * décrire la figure, jetez les points "sur le bord" séparément. Pour cela, vous aurez besoin d'une densité différente. – dmckee

+0

pour une raison quelconque lorsque j'implémente le schéma, les points sont générés aléatoirement sur 4 des côtés mais sur 2 d'entre eux (ils sont aussi des côtés opposés, ie haut et bas), les points ne sont générés qu'à partir du centre du visage et le long de la normale. Une idée de ce qui pourrait aller mal? – Myx