Een bedrijf moet een hoogspanningskabel spannen die in een rechte lijn loopt tussen punt $$A$$ en punt $$B$$. Er staat echter een obstakel $$O$$ op het terrein, waarvan het bedrijf vreest dat het wel eens in de weg van de kabel zou kunnen staan. Ze hebben jou hulp nodig om te bepalen of het obstakel echt wel in de weg staat.

 

Alhoewel de aarde eigenlijk een bol is, zijn de afstanden hier klein genoeg om ervan uit te gaan dat we in het vlak werken. We behandelen dus de breedte- en lengteligging als $$x$$- en $$y$$-coördinaten. Als de coördinaten van $$A$$, $$B$$ en $$O$$ respectievelijk $$(x_A,y_A)$$, $$(x_B,y_B)$$ en $$(x_O,y_O)$$ zijn, dan kan je de volgende vergelijking gebruiken om na te gaan of deze drie punten op één lijn liggen:\[\left(y_A-y_B\right)\,x_O - \left(x_A-x_B\right)\,y_O + x_A\,y_B - x_B\,y_A=0\]

Als deze vergelijking voldaan is, dan liggen de drie punten op één lijn. Er is echter pas een probleem als het obstakel ook effectief tussen punt $$A$$ en punt $$B$$ ligt. Controleer daarvoor of het obstakel zowel horizontaal als verticaal tussen het punt $$A$$ en het punt $$B$$ ligt.

Opgave

Schrijf een functie isObstakel die 6 coördinaten als argument neemt (in de volgorde $$x_A, y_A,x_B, y_B, x_O, y_O$$). De functie moet een Booleaanse waarde als resultaat teruggeven, die aangeeft of het obstakel al dan niet in de weg staat voor het spannen van een hoogspanningskabel tussen punt $$A$$ en punt $$B$$. Voor deze opgave mag je ervan uitgaan dat een waarde 0 is, als die daar minder dan $$10^{-6}$$ van afwijkt.

Voorbeeld

>>> isObstakel(51.022, 3.7095, 51.028, 3.7185, 51.025, 3.715)
False
>>> isObstakel(51.022, 3.7095, 51.028, 3.7185, 51.025, 3.714)
True