In de wiskundelessen leer je formules voor de vergelijking van een vlak bepalen. Wij focussen ons hier op de Cartesische vergelijkingen.
De vergelijking van een vlak bepaald door een punt \(P_{1}(x_{1}, y_{1}, z_{1})\) en twee richtingsvectoren \(\vec{R}(a_{1}, b_{1}, c_{1})\) en \(\vec{S}(a_{2}, b_{2}, c_{2})\) is:
\[\begin{equation} \begin{vmatrix} x-x_{1} & y-y_{1} & z-z_{1} \\ a_{1} & b_{1} & c_{1} \\ a_{2} & b_{2} & c_{2} \end{vmatrix} = 0 \end{equation}\]De vergelijking van een vlak bepaald door 2 niet-collineaire punten \(P_{1}\), \(P_{2}\) en \(P_{3}\) is:
\[\begin{equation} \begin{vmatrix} x & y & z & 1 \\ x_{1} & y_{1} & z_{1} & 1 \\ x_{2} & y_{2} & z_{2} & 1 \\ x_{3} & y_{3} & z_{3} & 1 \\ \end{vmatrix} = 0 \end{equation}\]Schrijf de functies
vergelijking_vlak_punt_twee_richtingsvectoren(punt, vector1, vector2)
vergelijking_vlak_drie_punten(punt1, punt2, punt3)
die deze 2 problemen oplossen: op basis van de inputs returnen deze functies strings die de correcte vergelijking voorstellen.
P1 = [1, 2, 3]
R = [0, -1, 1]
S = [1, 5, 6]
vergelijking_vlak_punt_twee_richtingsvectoren(P1, R, S)
-11x + 1y + 1z + 6= 0
P1 = [0, 0.5, 1]
P2 = [-0.5, 0, -1]
P3 = [-0.5, 1.5, 0]
vergelijking_vlak_drie_punten(P1, P2, P3)
2.5x + 0.5y + -0.75z + 0.5= 0
Je ziet onmiddellijk aan het laatste voorbeeld dat onze code niet perfect is. + -0.75
is niet iets dat we ooit echt zouden schrijven: wij zouden die +
weglaten. Dit is perfect mogelijk in Python, maar zou ons té veel tijd kosten voor wat het maar waard is.
Wie wil mag uiteraard steeds zelf sleutelen aan zijn/haar programma’s. De efficiëntste methode is om de replace() methode op te zoeken. Maar je mag je programma ook gewoon laten zoals het is: het is functioneel.