Fortran: Anhang B: Dreiecksberechnung

Aus testwiki
Zur Navigation springen Zur Suche springen

Fortran:Vorlage: NavigationMain

Aufgabe

Es sollen einige charakteristische Dreieckswerte berechnet werden. Der Programmanwender gibt die Koordinatenwerte (x, y) für die Dreieckseckpunkte P1, P2 und P3 vor.

Das Programm berechnet u.a. folgende Werte und übermittelt diese an die Standardausgabe:

  • Längen der Dreiecksschenkel und Dreiecksumfang
  • Innenwinkel
  • Fläche
  • Umkreis (Mittelpunkt und Radius)
  • Inkreis (Mittelpunkt und Radius)
  • Schwerpunkt

Grundlagen

Die Dreiecksberechnung erfolgt in diesem Anwendungsbeispiel hauptsächlich mittels Vektorrechnung.

Näheres zu Dreiecken und zur Vektorrechnung ist folgenden Enzyklopädieartikeln und Büchern zu entnehmen:

Koordinatenwerte ---> Richtungsvektoren

𝐚=𝐩3𝐩1
𝐛=𝐩2𝐩1
𝐜=𝐛𝐚

Seitenlängen und Umfang

anorm=|𝐚|
bnorm=|𝐛|
cnorm=|𝐜|
U = anorm+bnorm+cnorm

Bedingung: anorm0, bnorm0, cnorm0

Winkel

ab=arccos𝐚𝐛anormbnorm
bc=arccos𝐛𝐜bnormcnorm
ac=πabbc

Bedingung: ab0, ac0, bc0

Fläche

Es gilt

AParallelogramm=|𝐚×𝐛|=anormbnormsinab

und somit

A=Aparallelogramm2=anormbnormsinab2

Umkreis

Normalen:

𝐚𝐧=0
𝐛𝐦=0
|𝐧|=1
|𝐦|=1

n1=a21a12+a22
n2=a11a12+a22
m1=b21b12+b22
m2=b11b12+b22


Geradenschnittpunkt:

g1: 𝐱1=𝐚2+t1𝐧
g2: 𝐱2=𝐛2+t2𝐦
Der Umkreismittelpunkt ergibt sich als Schnittpunkt dieser beiden Geraden: 𝐱=𝐱1=𝐱2

t2=n1(a2b2)+n2(b1a1)2(m2n1m1n2)

Bedingung: m2n1m1n20


Umkreismittelpunkt und -radius:

𝐱o=𝐩1+𝐛2+t2𝐦

ro=|𝐛2+t2𝐦|

Inkreis

𝐯=12(𝐚anorm+𝐛bnorm)

𝐰=12(𝐛bnorm+𝐜cnorm)

g1: 𝐱1=t1𝐯

g2: 𝐱2=𝐛+t2𝐯

Der Inkreismittelpunkt ergibt sich als Schnittpunkt dieser beiden Geraden: 𝐱=𝐱1=𝐱2

t2=b1v2b2v1w2v1w1v2

Bedingung: w2v1w1v20


Inkreismittelpunkt:

𝐱i=𝐩2+t2𝐰


Inkreisradius:

ri=2Aanorm+bnorm+cnorm

Schwerpunkt

𝐯=𝐚+𝐜2
𝐰=𝐛2𝐚

g1: 𝐱1=t1𝐯
g2: 𝐱2=𝐚+t2𝐰

Der Dreiecksschwerpunkt ergibt sich als Schnittpunkt dieser beiden Geraden: 𝐱=𝐱1=𝐱2

t2=a1v2a2v1w2v1w1v2

Bedingung: w2v1w1v20

𝐱=𝐚+t2𝐰

𝐱cog=𝐩1+𝐱

Code

Screenshots