Ligt een punt binnen een convexe vierhoek
-
- Berichten: 2
Ligt een punt binnen een convexe vierhoek
Hallo wiskunde knobbels,
Ik ben computer programmeur en heb helaas niet erg goed op gelet tijdens wiskunde denk ik
Ik heb een convexe vierhoek op mijn scherm en als ik een ergens op het scherm klik krijg ik een x,y coordinaat. Nu wil ik berekenen of dat coordinaat binnen deze vierhoek valt.
Kan iemand mij een oplossing geven.?
Ik ben computer programmeur en heb helaas niet erg goed op gelet tijdens wiskunde denk ik
Ik heb een convexe vierhoek op mijn scherm en als ik een ergens op het scherm klik krijg ik een x,y coordinaat. Nu wil ik berekenen of dat coordinaat binnen deze vierhoek valt.
Kan iemand mij een oplossing geven.?
Re: Ligt een punt binnen een convexe vierhoek
Als de hoekpunten A,B,C en D zijn, moet je 4 vergelijkingen opstellen.
Een vergelijking van de lijn door A en B; een door B en C, een door C en D en een door D en A.
Stel de lijn door A en B heeft als vergelijking 2x + 3y = 5.
Neem een punt binnen de vierhoek (zeg (a,b))
Reken dan uit 2a+3b.
Is dat < 5, dan wordt 1 van je 4 criteria 2x + 3y < 5.
Is dat > 5, dan wordt 1 van je 4 criteria 2x + 3y > 5.
Doe dat voor alle 4 zijden.
Als je nu wilt nagaan of een punt binnen de vierhoek ligt, dan moet aan alle 4 ongelijkheden voldaan zijn.
Een vergelijking van de lijn door A en B; een door B en C, een door C en D en een door D en A.
Stel de lijn door A en B heeft als vergelijking 2x + 3y = 5.
Neem een punt binnen de vierhoek (zeg (a,b))
Reken dan uit 2a+3b.
Is dat < 5, dan wordt 1 van je 4 criteria 2x + 3y < 5.
Is dat > 5, dan wordt 1 van je 4 criteria 2x + 3y > 5.
Doe dat voor alle 4 zijden.
Als je nu wilt nagaan of een punt binnen de vierhoek ligt, dan moet aan alle 4 ongelijkheden voldaan zijn.
-
- Berichten: 2
Re: Ligt een punt binnen een convexe vierhoek
hmm dit gaat me al ver boven de pet
zou graag iets hebben wat ik direct in Visual basic kan intypen
stel ik heb een vierhoek a(110,100) , b(100,200), c(210,190), d(190,90)
hoe reken ik dan uit of x en y er binnen vallen.
sorry dat ik het niet beter snap
zou graag iets hebben wat ik direct in Visual basic kan intypen
stel ik heb een vierhoek a(110,100) , b(100,200), c(210,190), d(190,90)
hoe reken ik dan uit of x en y er binnen vallen.
sorry dat ik het niet beter snap
-
- Berichten: 2.746
Re: Ligt een punt binnen een convexe vierhoek
de uitleg van peterpan gaat gewoon over het feit dat, als een punt in een vierkant ligt, dat punt 4 keer aan de goede kant moet liggen van elk van de zijden.
- Berichten: 6.905
Re: Ligt een punt binnen een convexe vierhoek
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.
- Berichten: 3.330
Re: Ligt een punt binnen een convexe vierhoek
Misschien nog een gedacht:
Neem kleinste en grootste x-waarde (100,190).
neem kleinste en grootste y-waarde (90,210).
Als van punt de x en y daartussen ligt dan in, anders op of erbuiten.
Neem kleinste en grootste x-waarde (100,190).
neem kleinste en grootste y-waarde (90,210).
Als van punt de x en y daartussen ligt dan in, anders op of erbuiten.
Volgens mijn verstand kan er niets bestaan en toch bestaat dit alles?
- Berichten: 6.905
Re: Ligt een punt binnen een convexe vierhoek
ook een goede oplossing, gemakkelijker te programmerenkotje schreef:Misschien nog een gedacht:
Neem kleinste en grootste x-waarde (100,190).
neem kleinste en grootste y-waarde (90,210).
Als van punt de x en y daartussen ligt dan in, anders op of erbuiten.
dit werkt effectief alleen met een convexe vierhoek (wel de vraag uit de topic)
maar het is vele handiger om dat in eens voor een onregelmatige n-hoek te weten
als dat dan in een module staat is dat voor elk nieuw programma (met andere wensen) te gebruiken
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.
- Berichten: 3.330
Re: Ligt een punt binnen een convexe vierhoek
Ik denk niet dat mijn antwoord klopt, het is niet altijd geldig.
Volgens mijn verstand kan er niets bestaan en toch bestaat dit alles?
- Berichten: 6.905
Re: Ligt een punt binnen een convexe vierhoek
indien het echt een convex vierhoek is klopt ja antwoord gedeeltelijk, er komt namelijk een nieuwe voorwaarde (die had ik ook niet gezien)Ik denk niet dat mijn antwoord klopt, het is niet altijd geldig.
één van de zijden moet evenwijdig met een van de assen denk ik
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.
- Berichten: 792
Re: Ligt een punt binnen een convexe vierhoek
Ok, een voorstel, maar weet dat ik op mijn beurt bitter weinig van programmeren weet :
Mag ik om te beginnen aannemen dat je je punten "kent". Ik bedoel weet jij als je in wijzerzin je punten afloopt welke eerst komen in je n-hoek?
Ik neem aan in wat nu volgt van wel.
Nummer je hoekpunten
Ga nu na of :
Als alledrie de voorwaarden vervuld zijn, ligt het punt in de driehoek.
Zou moeten werken.
Er is trouwens wel een handige truc om de punten te genereren in de "convexe omhullende", namelijk al die barycentrische combinaties van de gegeven punten met positieve gewichten.
Mag ik om te beginnen aannemen dat je je punten "kent". Ik bedoel weet jij als je in wijzerzin je punten afloopt welke eerst komen in je n-hoek?
Ik neem aan in wat nu volgt van wel.
Nummer je hoekpunten
\(p_1\)
tot en met \(p_n\)
Nu werken we recursief, een punt zit "daarin" als ie in de (n-1)-hoek p_1 tot en met \(p_{n-1} \)
ligt, of in de driehoek met hoekpunten \(p_1 p_{n-1}\)
en \(p_{n}\)
Uiteindelijk komt het dus neer op bepalen of een punt in een driehoek ligt. Hoe doe je dat? Laat (a,b) (c,d) en (e,f) de drie coördinaten zijn. Ga nu na of :
\(e(d-b)+f(c-a)+(a d-bc)\)
hetzelfde teken als\( x(d-b)+y(c-a)+(a d- b c)\)
heeft\(c (f-b)+d (e-a)+(a f -b e)\)
hetzelfde teken als \(x (f -b) +y(e-a) +(a f - b e) \)
heeft\(a(f- d)+b(e-c)+(c f-d e )\)
hetzelfde teken als \( x(f-d)+y(e-c)+(c f- d e )\)
heeftAls alledrie de voorwaarden vervuld zijn, ligt het punt in de driehoek.
Zou moeten werken.
Er is trouwens wel een handige truc om de punten te genereren in de "convexe omhullende", namelijk al die barycentrische combinaties van de gegeven punten met positieve gewichten.
- Berichten: 6.905
Re: Ligt een punt binnen een convexe vierhoek
mooie oplossing, niet zo moeilijk te programmeren
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.
- Berichten: 792
Re: Ligt een punt binnen een convexe vierhoek
Nu ik erover nadenk, misschien kan het het voor n-hoeken dan evengoed zo (iets gemakkelijker misschien om te programmeren)
Reduceer niet tot het geval met driehoeken, check rechtstreeks of het voor de n zijden aan de juiste kant ligt.
Nummer weer je punten
check nu gewoon of voor elke i van 1 tot n geldt dat :
Reduceer niet tot het geval met driehoeken, check rechtstreeks of het voor de n zijden aan de juiste kant ligt.
Nummer weer je punten
\(p_1\)
tot en met \(p_n\)
maar we spreken af dat we cyclisch werken, kortom, als ik bijvoorbeeld \(p_{n+1} \)
schrijf dan bedoel ik daarmee gewoon weer p_{1} check nu gewoon of voor elke i van 1 tot n geldt dat :
\(x_{i+2}(y_{i+1}-y_{i})+y_{i+2}(x_{i+1}-x_{i})+(x_{i} y_{i+1}- x_{i+1}y_{i})\)
hetzelfde teken als \(x(y_{i+1}-y_{i})+y(x_{i+1}-x_{i})+(x_{i} y_{i+1}- x_{i+1}y_{i})\)
Nu ben ik niet zo goed in programmeren maar dat moet wel te doen zijn zeker?- Berichten: 6.905
Re: Ligt een punt binnen een convexe vierhoek
dat is dan de oplossing zoals PeterPan
moet wel lukken om te maken
moet wel lukken om te maken
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.
- Berichten: 792
Re: Ligt een punt binnen een convexe vierhoek
Inderdaad, het enige grote verschil is dat ik een formule gebruik die ook in uitzonderingsgevallen zal werken.jhnbk schreef:dat is dan de oplossing zoals PeterPan
moet wel lukken om te maken
- Berichten: 6.905
Re: Ligt een punt binnen een convexe vierhoek
ja, en dat is idd ook wel belangrijk
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.