Izračun ploščine trikotnika v prostoru
Izračun ploščine trikotnika v prostoru
Pozdravljeni
Imam tri točke v prostoru A(x1, y1, z1), B(x2, y2, z2) in C(x3, y3, z3), za katere ''točno'' vem podatke glede na ner keferenčni koordinatni sistem. Našel sem enačbo za izračun v matrični obliki. Ker sem že malo ven iz tega bi koga prosil, da mi napiše, kkao potem te točke vstavim v enačbo, da dobim rezultat (cifro).
Enačba je zapisana recimo tu:
http://mathworld.wolfram.com/TriangleArea.html
Že vnaprej hvala
BV
Imam tri točke v prostoru A(x1, y1, z1), B(x2, y2, z2) in C(x3, y3, z3), za katere ''točno'' vem podatke glede na ner keferenčni koordinatni sistem. Našel sem enačbo za izračun v matrični obliki. Ker sem že malo ven iz tega bi koga prosil, da mi napiše, kkao potem te točke vstavim v enačbo, da dobim rezultat (cifro).
Enačba je zapisana recimo tu:
http://mathworld.wolfram.com/TriangleArea.html
Že vnaprej hvala
BV
Da bi uporabil navedene formule, moraš prej določiti dolžine stranic oz. kote. Če recimo želiš uporabiti formulo (4), moraš določiti dolžine vseh 3 stranic. Za to recimo obstaja enačba (do nje prideš preko uporabe vektorjev - konkretno skalarnega produkta):
\(d_{AB} = \sqrt{(x_2-x_1)^2 + (y_2-y_1)^2 + (z_2-z_1)^2}\),
kjer je \(d_{AB}\) dolžina stranice \(AB\).
Podobno je za \(d_{AC}\) in \(d_{BC}\).
\(d_{AB} = \sqrt{(x_2-x_1)^2 + (y_2-y_1)^2 + (z_2-z_1)^2}\),
kjer je \(d_{AB}\) dolžina stranice \(AB\).
Podobno je za \(d_{AC}\) in \(d_{BC}\).
To pa res ne bi smel biti prevelik problem. Za zadnjo determinanto (gre za determinante, ne za matrike) imaš že napisan izraz: oklepaj v enačbi \((17)\). Ostali dve determinanti v enačbi \((18)\) izraziš na enak način: v prvi \(x\) zamenjaš z \(y\) in \(y\) zamenjaš z \(z\), v drugi pa \(x\) zamenjaš z \(z\) in \(y\) zamenjaš z \(x\). Indeksi se ne spremenijo.
- Rok Osolnik
- Prispevkov: 63
- Pridružen: 23.8.2005 13:17
- Kraj: Srednja vas
- Kontakt:
To je potrata casa in je popolnoma nesmiselno, ker so koordinate in izracun ploscine iz koordinat bolj fundamentalni podatki kot pa dolzine stranic. Ce vstavis tovrstne podatke v heronov obrazec dobis korene znotraj korenov!
Saj je izpeljava cisto enostavna (tudi na mathworld je tako razlozeno). Ploscina trikotnika je polovica ploscine paralelograma, napetega na poljubni dve stranici. To dobis pa iz absolutne vrednosti vektorskega produkta.
\(S=\frac{1}{2}\big\Vert(C-A)\times(B-A)\big\Vert\)
Ko razpises po komponentah dobis ravno
\(S=\frac{1}{2}\bigg[
\begin{vmatrix}B_y-A_y&B_z-A_z\\C_y-A_y&C_z-A_z\end{vmatrix}^2+
\begin{vmatrix}B_z-A_z&B_x-A_x\\C_z-A_z&C_x-A_x\end{vmatrix}^2\)\(+
\begin{vmatrix}B_x-A_x&B_y-A_y\\C_x-A_x&C_y-A_y\end{vmatrix}^2
\bigg]^{1/2}\)
Ce je trikotnik ravninski, se formula zreducira na zadnji clen pod korenom, kar je poznano vsakemu srednjesolcu. V treh dimenzijah v resnici samo "po pitagori" sestejes ploscine projekcij trikotnika na ravnine xy, yz, zx.
Saj je izpeljava cisto enostavna (tudi na mathworld je tako razlozeno). Ploscina trikotnika je polovica ploscine paralelograma, napetega na poljubni dve stranici. To dobis pa iz absolutne vrednosti vektorskega produkta.
\(S=\frac{1}{2}\big\Vert(C-A)\times(B-A)\big\Vert\)
Ko razpises po komponentah dobis ravno
\(S=\frac{1}{2}\bigg[
\begin{vmatrix}B_y-A_y&B_z-A_z\\C_y-A_y&C_z-A_z\end{vmatrix}^2+
\begin{vmatrix}B_z-A_z&B_x-A_x\\C_z-A_z&C_x-A_x\end{vmatrix}^2\)\(+
\begin{vmatrix}B_x-A_x&B_y-A_y\\C_x-A_x&C_y-A_y\end{vmatrix}^2
\bigg]^{1/2}\)
Ce je trikotnik ravninski, se formula zreducira na zadnji clen pod korenom, kar je poznano vsakemu srednjesolcu. V treh dimenzijah v resnici samo "po pitagori" sestejes ploscine projekcij trikotnika na ravnine xy, yz, zx.
Lahko gres sicer "Input/create table/matrix/palette" samo tega nihce ne pocne. Matriko vstavis kot
za ogled matrike v "lepi in pregledni obliki" potem naredis
Sploh pa lahko v Mathematici direktno uporabis definicijo z vektorskim produktom, je krajse:
Nasploh je Mathematica izredno mocno orodje, tudi za komplicirane probleme je koda ponavadi kratka in kompaktna (rabis pa malo prakse).
Koda: Izberi vse
M={{a,b},{c,d}} (*kot vektor vektorjev*)
Koda: Izberi vse
M//MatrixForm
Koda: Izberi vse
Det[M] (*determinanta ki jo potrebujes*)
Koda: Izberi vse
a={4,3,6};
b={3,6,7};
c={7,3,2};
s=Norm[Cross[c-a,b-a]]/2 (*Norm ti izracuna normo vektorja, Cross pa vektorski produkt*)