Vergelijkingen van een vlak

Theorie

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}\]

Oefening

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.

Voorbeelden

Voorbeeld 1

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

Voorbeeld 2

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

Opmerking

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.