• Xzelicon
  • Registratie: Juli 2007
  • Laatst online: 05-05-2024
Hallo,
sorry voor de wat rare titel maargoed, komtie dan :)

Voor een project van mij moet ik controleren of een bepaald punt zich in een halve cirkel bevindt, maar hiervoor kan ik geen formule bedenken/vinden.
Ik kan het wel controleren in een volledige cirkel met de volgende formule: Root{(a+a1)^2 + (b+b1)^2}, het is gegoten in programmeer taal maar je ziet wat ik hiervoor gebruik, de pythagoras theorie.
Nu zou ik dus moeten kunnen controleren of een bepaald punt zich in een halve cirkel bevindt.
Ik heb hiervoor de volgende gegevens ter beschikking:

- De coördinaten van het punt in het X-Y assen stelsel
- De coördinaten van de halve cirkel in het X-Y assen stelsel
- De coördinaten van het middelpunt van de rechte van de halve cirkel in the X-Y assen stelsel
- Eventueel ook de hoek hiervan, zodat je dus weet naar waar de halve cirkel gericht is
Hiermee zou ik dus een formule moeten maken die kan controleren of een punt zich in de halve cirkel bevind.

Hopend op iemand die de formule kent,

Met vriendelijke groeten,
Xzelicon

Kom ook naar ons #vervoer IRC kanaal!


  • Pete
  • Registratie: November 2005
  • Laatst online: 31-10 12:38
Zou je iets duidelijker kunnen aangeven welke coördinaten je hebt? Wat is "het middelpunt van de rechte".

Daarnaast, wat heeft dit met programmeren te maken. Is dit niet gewoon wiskunde?

petersmit.eu


  • HuHu
  • Registratie: Maart 2005
  • Niet online
Combineer de formule voor de hele cirkel met de formule waarmee je kunt controleren aan welke kant van een lijn een punt ligt en je hebt je antwoord.

  • dlmh
  • Registratie: Januari 2000
  • Laatst online: 20-12 23:09

dlmh

Lo-Fi

Ik ga geen formule voorkauwen, maar als de afstand tussen het punt en het middelpunt van de cirkel korter of gelijk is aan de straal van de cirkel dan bevindt deze zich in deze cirkel.

Dat zou genoeg moeten zijn om zelf een functie te bedenken.

“If a cluttered desk is a sign of a cluttered mind, of what, then, is an empty desk a sign?” - Albert Einstein


  • Matis
  • Registratie: Januari 2007
  • Laatst online: 20:24

Matis

Rubber Rocket

Cos en Sin wel eens van gehoord?

If money talks then I'm a mime
If time is money then I'm out of time


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Je kunt idd eenvoudig kijken wat de afstand is tussen 2 punten ( Het punt wat je wilt testen en het middelpunt van de hele cirkel ), als die kleiner is dan de straal van de cirkel zit hij in de circel. Dan kun je d.m.v. de x coordinaat makkelijk kijken of hij links of rechts in de halve cirkel zit. ( Wat dus alleen werkt als de halve cirkel niet geroteerd is )

Ik laat het topic voor nu even hier staan, al twijfel ik of hij niet beter in Wetenschap & Levensbeschouwing past.

[ Voor 49% gewijzigd door Woy op 08-04-2009 16:20 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Matis
  • Registratie: Januari 2007
  • Laatst online: 20:24

Matis

Rubber Rocket

Je kunt toch aan de hoek van de vector zien of die kleiner of gelijk is dan de hoek (richtingscoëfficiënt) van de helft van de cirkel?

If money talks then I'm a mime
If time is money then I'm out of time


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Neem (px, py) = punt,
Neem (cx, cy) = middenpunt cirkel
Neem r = straal cirkel

In cirkel := Abs(px-cx)2 + Abs(py-cy)2 <= r2 <- is efficienter dan een sqrt berekenen. ;)

Maak eens een schets van de situatie. Snap niet precies wat ik me nu moet voorstellen bij:
"De coördinaten van het middelpunt van de rechte van de halve cirkel in the X-Y assen stelsel"

[ Voor 58% gewijzigd door Grijze Vos op 08-04-2009 16:35 ]

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:53

.oisyn

Moderator Devschuur®

Demotivational Speaker

Door Woy's slotje was ik mooi mijn post kwijt 8)7. Overnieuw dan maar:
- De coördinaten van het middelpunt van de rechte van de halve cirkel in the X-Y assen stelsel
Is dit niet effectief ook meteen het middelpunt van de hele cirkel?

Anyway, handig is om de normaal van de rechte te berekenen. Aangezien je de hoek al hebt is dit simpelweg (cos θ, sin θ), met een minnetje hier en daar afhankelijk van de orientatie van je assenstelsel. Dan bepaalt (p-l)∙n >= 0 aan welke kant van de scheidingslijn je punt zich bevindt, met p het punt, l een willekeurig punt op de rechte en n de normaal van de rechte.

Waarom iedereen met commentaar over het in-cirkel-testen komt snap ik niet, het is duidelijk te zien dat de TS dit al wel goed had.

@Grijze Vos: je abs() is vrij nutteloos :)

[ Voor 8% gewijzigd door .oisyn op 08-04-2009 16:47 ]

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.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Xzelicon
  • Registratie: Juli 2007
  • Laatst online: 05-05-2024
Schetsje:
Afbeeldingslocatie: http://www.imgdumper.nl/uploads/49db25a48bf40/49db25a47a219-Naamloos.jpg
@.oisyn, yep dat is het middelpunt.
In ieder geval iedereen alvast bedankt voor de tips, ga het allemaal bij elkaar leggen en wat formules brouwen.
En btw: de punten kunnen bewegen, het gaat dus om 1 punt die kan bewegen of stilstaan en die moet dus controleren of een tweede punt in zijn bereik komt, in die halve cirkel dus en dat punt kan ook bewegen/stilstaan.
Grijze Vos schreef op woensdag 08 april 2009 @ 16:29:
Neem (px, py) = punt,
Neem (cx, cy) = middenpunt cirkel
Neem r = straal cirkel

In cirkel := Abs(px-cx)2 + Abs(py-cy)2 <= r2 <- is efficienter dan een sqrt berekenen. ;)

Maak eens een schets van de situatie. Snap niet precies wat ik me nu moet voorstellen bij:
"De coördinaten van het middelpunt van de rechte van de halve cirkel in the X-Y assen stelsel"
Is dat niet gewoon een herschreven versie v/d stelling van Pythagoras?
Welke ik dus ook gebruik voor de hele cirkel...

Ik heb trouwens wel een formule maar daarvoor moet ik nog een formule hebben om een punt te laten bewegen in een bepaalde hoek en een bepaalde afstand.
Die formule is trouwens:
d^2 = (x-x1)^2 + (y-y1)^2
X,Y = punt v/d halve cirkel
X1,Y1 = 2e punt
d = afstand tussen de twee punten

[ Voor 79% gewijzigd door Xzelicon op 08-04-2009 18:07 ]

Kom ook naar ons #vervoer IRC kanaal!


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
.oisyn schreef op woensdag 08 april 2009 @ 16:47:
@Grijze Vos: je abs() is vrij nutteloos :)
d0h, uiteraard. brainfart. :P

Als je nou 2 coordinaten hebt van de "baseline" van je halve cirkel, dan kun je heel makkelijk een test doen om te kijken aan welke kant van die lijn je punt ligt. (Moet je natuurlijk ook nog wel weten aan welke kant je halve cirkel zelf ook ligt.) Dat combineren met een "in-de-cirkel-test" lijkt me het meest efficient. Heb je niet evt een normaal vector van de "baseline" van de cirkel o.i.d.?

p.s.
Ik had even die herformulering neergezet omdat je echt niet wilt worteltrekken als dat niet hoeft, r2 1x uitrekenen is veel goedkoper natuurlijk, ipv telkens een wortel.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

Er is sowieso niet 1 formule, want je kan een halve cirkel niet met 1 formule definieren. Je hebt bijvoorbeeld
(x - 6)2 + (y + 2)2 <= 32 om de cirkel te definieren en vervolgens
x > 6 om de cirkel te halveren. Je moet dus altijd twee condities controleren.

Wie trösten wir uns, die Mörder aller Mörder?


  • 3V3RT
  • Registratie: Januari 2004
  • Laatst online: 16-08 22:30
wat je kan ook doen is vanaf je punt beginnen met x op te hogen (eigenlijk een pijl naar rechts maken). Als je dan maar 1 snijpunt tegenkomt, dan weet je dat hij er in ligt, kom je er twee tegen dan ligt hij er buiten: het zogenoemde "Ray Casting Algorithm".

[ Voor 0% gewijzigd door 3V3RT op 08-04-2009 21:38 . Reden: typo ]


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 10-12 14:13
Yup,maar ook dan moet je twee formules hebben: Een voor de ronde zijde, en een andere voor de rechte zijde van je halve cirkel.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • Xzelicon
  • Registratie: Juli 2007
  • Laatst online: 05-05-2024
Hmmm, mbv deze tips gaan we nog eens proberen wat te brouwen:P.
@Grijze fox, nope, heb slechts 1 punt voor de halve cirkel en kan geen 2e punt daarvoor maken.

Kom ook naar ons #vervoer IRC kanaal!

Pagina: 1