Toon posts:

[Python] Random locatie in oppervlakte circkel calculeren

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik ben bezig een python scriptje te schrijven, nu ben ik bezig met een onderdeel waarop ik tot nu toe geen oplossing heb gevonden. Misschien heeft iemand een idee?

Wat ik voor elkaar wil krijgen is dat ik een x,y coordinaat heb, vervolgens kan opgeven hoe groot de straal rondom dat coordinaat is, en dat ik vervolgens een random coordinaat binnen de 'denkbeeldige' cirkel rondom x,y kan verkrijgen.

Iemand enig idee?

Alvast van harte bedankt! _/-\o_

Acties:
  • 0 Henk 'm!

  • Erik Jan
  • Registratie: Juni 1999
  • Niet online

Erik Jan

Langzaam en zeker

[...]

[ Voor 105% gewijzigd door Erik Jan op 24-02-2009 21:45 . Reden: megadoh! zie RayNbow ]

This can no longer be ignored.


Acties:
  • 0 Henk 'm!

  • Lone Gunman
  • Registratie: Juni 1999
  • Niet online
Je zou gebruik kunnen maken van pool coordinaten.
Genereer een random straal, kleiner dan de straal van de omvattende cirkel en een hoek, en reken deze terug naar een cartesisch coordinaat, en tel deze op bij het coordinaat dat je al had.

Experience has taught me that interest begets expectation, and expectation begets disappointment, so the key to avoiding disappointment is to avoid interest.


Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 21:03

RayNbow

Kirika <3

Erik Jan schreef op dinsdag 24 februari 2009 @ 21:35:
Ja hoor.

Noem "rand" een willekeurig getal tussen de 0 en de 1.

pX = x + (straal * ((rand * 2) -1))
pY = y + (straal * ((rand * 2) -1))
Dat is dus fout. Neem maar eens voor beide voorkomens van rand = 1 en je hebt een punt buiten de cirkel.

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Moet het uniform verdeeld zijn? Anders kun je natuurlijk simpelweg weg met een random straal tussen 0 en de maximale straal en een random hoek tussen 0 en 2pi.

Als je zoekt naar een uniforme verdeling van je random punten dan is de makkelijkste methode gewoon een random (x,y) paar binnen het vierkant om de cirkel en als die dan buiten de cirkel valt opnieuw proberen. Het doen zonder eliminatie is wat minder triviaal en ik heb even geen zin om dat nu uit te vinden, maar er staat vast wel wat op het internet :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 20:07
Disk Point Picking!
Zelf nog even transleren/schalen van de eenheidscirkel naar je cirkel op (x,y) met straal (r).

edit:
Wat .oisyn zegt kan ook trouwens. Conceptueel vind het wat minder mooi persoonlijk, maar in de praktijk werkt 't prima.

[ Voor 64% gewijzigd door Soultaker op 24-02-2009 21:58 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het moet inderdaad uniform verdeeld zijn. Ik heb tot nu toe geen manier gevonden om dat te doen zonder eliminatie. Dus ik ga voor nu het eliminatie idee implementeren.

Bedankt allemaal voor de snelle reply!

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Soultaker, daar was ik naar opzoek! Bedankt!
Pagina: 1