Ik heb een denkbeeldig vierkant onder een hoek, waarvan ik de hoekpunten (P1 en P2) en de hoek (A) weet.
Daarnaast heb ik een willekeurig punt (P3). Hoe kan ik berekenen of het Punt (P3) zich in het denkbeeldige vierkant bevindt?
Hieronder een schets van het probleem.
Check of een punt in een gebied ligt
Re: Check of een punt in een gebied ligt
Wat is de bedoeling. Wil je hier een computerprogramma voor schrijven?
Zijn van de punten en de x- en y-coordinaten bekend?
Stel je hebt en en hoek .
Bepaal de 2 zijden van de rechthoek(?, je schrijft vierkant) door punt .
Doe net zo voor .
B.v. en
Vervolgens, zeg .
Kijk hoe ligt t.o.v. en .
Snij de lijn (projectie op de x-as) met de juiste twee lijnen van het vierkant.
1 snijpunt <=> Punt ligt binnen rechthoek.
Verondersteld wordt dat het vierkant geheel boven de x-as ligt.
Zijn van de punten en de x- en y-coordinaten bekend?
Stel je hebt en en hoek .
Bepaal de 2 zijden van de rechthoek(?, je schrijft vierkant) door punt .
Doe net zo voor .
B.v. en
Vervolgens, zeg .
Kijk hoe ligt t.o.v. en .
Snij de lijn (projectie op de x-as) met de juiste twee lijnen van het vierkant.
1 snijpunt <=> Punt ligt binnen rechthoek.
Verondersteld wordt dat het vierkant geheel boven de x-as ligt.
Re: Check of een punt in een gebied ligt
ik wil hier inderdaad een computerprogramma voor schrijven.
Hierbij kan de Hoek variabel zijn, dus de punten kunnen ook onder de X as liggen.
Hierbij kan de Hoek variabel zijn, dus de punten kunnen ook onder de X as liggen.
Re: Check of een punt in een gebied ligt
De 4 lijnen zijn
,
,
,
.
Vul in deze 4 lijnen .
Dat geeft 4 y-waarden.
Als 2 van de 4 y-waarden groter zijn dan en 2 kleiner, dan ligt binnen het vierkant, anders niet.
Ga na!!!
,
,
,
.
Vul in deze 4 lijnen .
Dat geeft 4 y-waarden.
Als 2 van de 4 y-waarden groter zijn dan en 2 kleiner, dan ligt binnen het vierkant, anders niet.
Ga na!!!
Re: Check of een punt in een gebied ligt
Met de methode van op=op moet je maatregelen nemen om je programma niet vast te laten lopen bij nuldeling.
De rotatie die ik gaf in je parallelpost viewtopic.php?f=38&t=7166 heeft dit probleem niet:
P2 krijgt nu de coordinaten:
x2 = (P2x-P1x)*cos(A) + (P2y-P1y)*sin(A)
y2 = (P1x-P2x)*sin(A) + (P2y-P1y)*cos(A)
P3 krijgt nu de coordinaten:
x3 = (P3x-P1x)*cos(A) + (P3y-P1y)*sin(A)
y3 = (P1x-P3x)*sin(A) + (P3y-P1y)*cos(A)
Omdat je rechthoek nu rechtop staat, ligt P3 binnen deze rechthoek als:
0 < x3 < x2 EN 0 < y3 < y2
De rotatie die ik gaf in je parallelpost viewtopic.php?f=38&t=7166 heeft dit probleem niet:
P2 krijgt nu de coordinaten:
x2 = (P2x-P1x)*cos(A) + (P2y-P1y)*sin(A)
y2 = (P1x-P2x)*sin(A) + (P2y-P1y)*cos(A)
P3 krijgt nu de coordinaten:
x3 = (P3x-P1x)*cos(A) + (P3y-P1y)*sin(A)
y3 = (P1x-P3x)*sin(A) + (P3y-P1y)*cos(A)
Omdat je rechthoek nu rechtop staat, ligt P3 binnen deze rechthoek als:
0 < x3 < x2 EN 0 < y3 < y2