WisFaq!

\require{AMSmath} geprint op zondag 24 november 2024

Snijpunt van twee haaks op elkaar staande lijnen

Voor een computerprogramma heb ik een formule nodig die het snijpunt van twee lijnen die haaks op elkaar staan uitrekent. Van beide lijnen weet ik één punt dat ze raken, en de richting (tov de y-as).
Tijdens het zelf proberen op te lossen van het probleem, liep ik tegen twee problemen aan:
- Een van de lijnen kan recht omhoog lopen, een formule à la ax+b gaat daar de mist in, aangezien a oneindig groot zou worden.
- Ik kan het programma niet iedere keer een vergelijking laten oplossen, het moet echt een (of meerdere) formule(s) zijn.

Alvast bedankt

Rembrand
29-3-2004

Antwoord

Als twee lijnen loodrecht op elkaar staan, dan geldt voor de richtingscoefficienten: rico1*rico2=-1.
Als dus lijn 1 een richtingscoefficient a heeft heeft lijn 2 richtingscoefficient -1/a, behalve als a=0.


Stel je hebt twee lijnen:
y=ax+b en y=cx+d dan kun je het snijpunt berekenen door ax+b gelijk te stellen aan cx+d:
ax+b=cx+d =ax-cx=d-b = (a-c)x=d-b =
x=(d-b)/(a-c).


Nu jouw probleem:


Je hebt de lijn door (xp,yp) met rico a, en de lijn door (xq,yq) met rico -1/a.
De eerste lijn heeft vergelijking y=ax+b, met b=yp-a*xp
De tweede lijn heeft vergelijking y=cx+d met c=-1/a en d=yq-c*xq
Als a=0, dan is het simpel:
Voor het snijpunt geldt:
x=xq, y=yp.

Het volgende programmadeel zou dus in principe het snijpunt moeten leveren:
ALS a=0
DAN
x=xq
y=yp
ANDERS
c=-1/a
b=yp-a*xp
d=yq-c*xq
x=(d-b)/(a-c)
y=a*x+b
EINDALS

Maar het kan handiger:
Kijk nog eens naar de uitdrukking voor x:
x=(d-b)/(a-c)

d-b=yq-cxq-yp+a*xp
Vermenigvuldig dit met a en bedenk a*c=-1:
Je krijgt dan:
a*(d-b)=a*yq+xq-a*yp+a^2*xp
Je moet nu ook (a-c) met a vermenigvuldigen:
a(a-c)=a^2-ac=a^2+1.
Dit levert dus
x=(a*yq+xq-a*yp+a^2*xp)/(a^2+1)
Als a=0 levert dit: xq/1=xq: precies wat we willen.
y kun je dan weer berekenen met y=a*x+b.
Als a=0 levert dit y=b, maar b=yp-a*xp. Als a=0 levert dit dus y=yp.Precies wat we willen.

Nu hebben we dus een formule "in een klap" en is ALS niet meer nodig:
x=(a*yq+xq-a*yp+a^2*xp)/(a^2+1)
y=a*(x-xp)+yp

hk
29-3-2004


© 2001-2024 WisFaq
WisFaq - de digitale vraagbaak voor het wiskunde onderwijs - http://www.wisfaq.nl

#22138 - Analytische meetkunde - Leerling bovenbouw havo-vwo