Modul Dreiecke
Verfasst: Di Jul 10, 2018 11:48 am
Code: Alles auswählen
# -*- coding: utf-8 -*-
""" Geschrieben von gesc
Modul zur Berechnungen der Dreicke (rechtwinkliges)
Version 0.6 Juli 2018
Die Returnparameter sind:
sa = Seite a
sb = Seite b
sc = Seite c
wa = Winkel a
wb = Winkel b
wy = Winkely
ho = Hoehe
um = Umfang
fl = Flaeche
ru = Radius des Umkresies
ri = Radius des Innenkreises
kp = Hypotenusenabschnitt p
kq = Hypotenusenabschnitt q
awa = Aussenwinkel a
awb = Aussenwinkel b
awy = Aussenwinkel y
raf = Radius Feuerbachkreis
rka = Radius Ankreis a
rkb = Radius Ankreis b
rkc = Radius Ankreis c
lwa = Länge Winkelhalbierende a
lwb = lLänge Winkelhalbierende b
lwy = Länge Winkelhalbierende y
gra = Seitenlänge a grösstes Rechteck
grb = Seitenlänge b grösstes Rechteck
grf = Fläche grösstes Rechteck
gru = Umfang grösstes Rechteck
grp = Prozent grösstes Rechteck
sha = Seitenhalbierende a
shb = Seitenhalbierende b
shc = Seitenhalbierende c
qra = Seitenlänge grösstes Quadrat
qrf = Fläche grösstes Quadrat
qru = Umfang grösstes Quadrat
qrp = Prozent grösstes Quadrat
Der komplette Returnparameteraufruf erfolgt mit:
sa, sb, sc, wa, wb, wy, ho, um, fl, ru, ri, kp, kq,
awa, awb, awy, raf, rka, rkb, rkc, lwa, lwb, lwy,
gra, grb, grf, gru, grp, sha, shb, shc, qra, qrf,
qru, qrp = rewidreieck("a",3,"b",4,"cm",2, "p")
immer mit einem \ am Zeilenende wegen der Länge
wobei "a" als Beispiel Seite a und "b" als Seite b
übergeben wird. "cm" die Masse und die 2 die anzahl der
Stellen auf die gerundet wir (kann beliebig sein)
Aufruf für nur Druck der Berechnungen:
print(fbr.rewidreieck("a",3,"wb", 53.13,"cm",3,"p"))
hier z.b: Seite a mit 3 cim und Winkel b mit 53,13 grad.
Soll auch gezeichnet werden, dann nach dem Returnparameteraufruf noch:
dreiprint(sa, sb, sc, wa, wb, wy, ho, kp, kq, lwa, lwb, lwy, sha, shb, shc, fl, um, ru)
"""
from math import pi, sqrt
from numpy import cos, sin, arccos, arcsin, tan
import turtle
import sys
# class RewiDreieck:
def dreieckfl(hoehe,laenge):
""" Fläche des Dreieckes nach Höhe mal Länge durch 2
es wivariable ist höhe, zweite ist länge
aufruf z.B.: mit variable = dreieckfl(4,6) """
para = hoehe * laenge * 0.5
return para
def dreieckum(hoehe,laenge,breite):
""" Umfang des Dreieckes nach a + b + c
es wird ein Returnparameter zurück gegeben
erste variable = a, zweite = b, dritte = c
aufruf z.B.: mit variable = dreieckum(4,6,8) """
para = hoehe + laenge + breite
return para
# Berechnung C eines rechtwinkliges Dreieck
def dreieckcber(a,b):
para = (a **2 + b **2) **(1/2)
return para
# Berechnung A eines rechtwinkliges Dreieck
def dreieckaber(a,b):
para = (a **2 / b **2) **(1/2)
return para
# Berechnung B eines rechtwinkliges Dreieck
def dreieckbber(a,b):
para = (a **2 / b **2) **(1/2)
return para
# *****************************
# *****************************
# Seiten a und c gegeben
def rewiac(a,c,p3):
seitea = round(a,p3)
seitec = round(c,p3)
seiteb = round(sqrt(seitec **2 - seitea **2),2)
return seitea, seiteb, seitec
# Seiten a und b gegeben
def rewiab(a,b,p3):
seitea = round(a,p3)
seiteb = round(b,p3)
seitec = round(sqrt(seitea **2 + seiteb **2),2)
return seitea, seiteb, seitec
# Seiten b und a gegeben
def rewiba(b,a,p3):
seitea = round(a,p3)
seiteb = round(b,p3)
seitec = round(sqrt(seitea **2 + seiteb **2),2)
return seitea, seiteb, seitec
# Seiten b und c gegeben
def rewibc(b,c,p3):
seiteb = round(b,p3)
seitec = round(c,p3)
seitea = round(sqrt(seitec **2 - seiteb **2),2)
return seitea, seiteb, seitec
# Seiten c und a gegeben
def rewica(c,a,p3):
seitea = round(a,p3)
seitec = round(c,p3)
seiteb = round(sqrt(seitec **2 - seitea **2),2)
return seitea, seiteb, seitec
# Seiten c und a gegeben
def rewicb(c,b,p3):
seiteb = round(b,p3)
seitec = round(c,p3)
seitea = round(sqrt(seitec **2 - seiteb **2),2)
return seitea, seiteb, seitec
# Seiten a und winkel a gegeben
def rewiawa(c,b,p3):
seitea = round(c,p3)
winkela = b
zwi1 = (winkela * pi) / 180
wia = (sin(zwi1))
seitec = round((seitea/(wia)),p3)
seiteb = round(sqrt(seitec **2 - seitea **2),p3)
return seitea, seiteb, seitec
# Seiten a und winkel b gegeben
def rewiawb(c,b,p3):
seitea = round(c,p3)
winkelb = b
zwi1 = (winkelb * pi) / 180
wib = (cos(zwi1))
seitec = round((seitea/(wib)),p3)
seiteb = round(sqrt(seitec **2 - seitea **2),p3)
return seitea, seiteb, seitec
# Seiten b und winkel a gegeben
def rewibwa(c,b,p3):
seiteb = round(c,p3)
winkela = b
zwi1 = (winkela * pi) / 180
wia = (cos(zwi1))
seitec = round((seiteb/(wia)),p3)
seitea = round(sqrt(seitec **2 - seiteb **2),p3)
return seitea, seiteb, seitec
# Seiten b und winkel b gegeben
def rewibwb(c,b,p3):
seiteb = round(c,p3)
winkelb = b
zwi1 = (winkelb * pi) / 180
wib = (sin(zwi1))
seitec = round((seiteb/(wib)),p3)
seitea = round(sqrt(seitec **2 - seiteb **2),p3)
return seitea, seiteb, seitec
# Seiten c und winkel a gegeben
def rewicwa(c,b,p3):
seitec = round(c,p3)
winkela = b
zwi1 = (winkela * pi) / 180
wia = (sin(zwi1))
seitea = round((seitec*(wia)),p3)
seiteb = round(sqrt(seitec **2 - seitea **2),p3)
return seitea, seiteb, seitec
# Seiten c und winkel b gegeben
def rewicwb(c,b,p3):
seitec = round(c,p3)
winkelb = b
zwi1 = (winkelb * pi) / 180
wib = (sin(zwi1))
seiteb = round((seitec*(wib)),p3)
seitea = round(sqrt(seitec **2 - seiteb **2),p3)
return seitea, seiteb, seitec
def rewidreieck(p1,a1,p2,a2,ein,p3,p4=False):
# Seiten a und c gegeben
if (p1 == "a" and p2 == "c"):
seitea, seiteb, seitec = rewiac(a1,a2,p3)
# Seiten a und b gegeben
if (p1 == "a" and p2 == "b"):
seitea, seiteb, seitec = rewiab(a1,a2,p3)
# Seiten b und a gegeben
if (p1 == "b" and p2 == "a"):
seitea, seiteb, seitec = rewiba(a1,a2,p3)
# Seiten b und c gegeben
if (p1 == "b" and p2 == "c"):
seitea, seiteb, seitec = rewibc(a1,a2,p3)
# Seiten c und a gegeben
if (p1 == "c" and p2 == "a"):
seitea, seiteb, seitec = rewica(a1,a2,p3)
# Seiten c und b gegeben
if (p1 == "c" and p2 == "b"):
seitea, seiteb, seitec = rewicb(a1,a2,p3)
# Seiten a und winkel a gegeben
if (p1 == "a" and p2 == "wa"):
seitea, seiteb, seitec = rewiawa(a1,a2,p3)
# Seiten a und winkel b gegeben
if (p1 == "a" and p2 == "wb"):
seitea, seiteb, seitec = rewiawb(a1,a2,p3)
# Seiten b und winkel a gegeben
if (p1 == "b" and p2 == "wa"):
seitea, seiteb, seitec = rewibwa(a1,a2,p3)
# Seiten b und winkel b gegeben
if (p1 == "b" and p2 == "wb"):
seitea, seiteb, seitec = rewibwb(a1,a2,p3)
# Seiten c und winkel a gegeben
if (p1 == "c" and p2 == "wa"):
seitea, seiteb, seitec = rewicwa(a1,a2,p3)
# Seiten c und winkel b gegeben
if (p1 == "c" and p2 == "wb"):
seitea, seiteb, seitec = rewicwb(a1,a2,p3)
# Winkelberechnungen
winkel = arcsin(seitea/seitec)
# erg1 = arcsin(winkel)
winkela = round(((winkel * 180) / pi),p3)
winkelb = round((180 - 90 - winkela),p3)
winkely = round(90,p3)
allewi = round((90 + winkelb + winkela),p3)
# Umfang, Höhe, Fläche
umfang = round((seitea + seitec + seiteb),p3)
flaeche = round(((seitea * seiteb)/2),p3)
hoehe = round(((seitea * seiteb) / seitec),p3)
# Kreise
radumkreis = round(seitec/2,p3)
radinkreis = round(((seitea * seiteb)/(seitea + seiteb + seitec)),p3)
# Schwerpunkt
spxs = round(seiteb/3,p3)
sphs= round(hoehe/3,p3)
# Aussenwinkel
awinkela = round(360-winkela,p3)
awinkelb = round(360-winkelb,p3)
awinkely = round(360-winkely,p3)
# Feuerbachpunkt
fbp1 = round((1 - (cos(winkelb - winkely))),p3)
fbp2 = round((1 - (cos(winkely - winkela))),p3)
fbp3 = round((1 - (cos(winkela - winkelb))),p3)
feuerbach = round(((fbp1 / fbp2) /fbp3),p3)
# Feuerbachkreis oder Neun-Punkte-Kreis oder Euklidkreis
radfeuerb = round((radumkreis / 2),p3)
# Kathetensatz
katp = round(((seitea **2)/seitec),p3)
katq = round(((seiteb **2)/seitec),p3)
# Hypotenusenabschnitte
# Größtes Rechteck im Dreieck
grorechtecka = seitec/2
grorechteckb = hoehe/2
flgrorecht = grorechtecka * grorechteckb
umgrorecht = 2 * grorechtecka + 2 * grorechteckb
flaprozvomdrei = round(((flgrorecht / flaeche) * 100), 2)
# Größtes Quadrat im Dreieck
quad1 = round(((seitea * seiteb) / (seitea + seiteb)),2)
quad2 = round(((hoehe * seitec) / (hoehe + seitec)),2)
if quad1 > quad2:
quadla = round(quad1, p3)
quadfl = round((quad1 * quad1), p3)
quadum = round((quad1 * 4), p3)
if quad2 > quad1:
quadla = round(quad2, p3)
quadfl = round((quad2 * quad2), p3)
quadum = round((quad2 * 4), p3)
flaprozvomquad = round(((quadfl / flaeche) * 100), 2)
# Winkelhalbierende
waerg1 = (winkela * pi) / 180
waerg2 = (winkelb * pi) / 180
waerg3 = (winkely * pi) / 180
zwi1 = cos(waerg1/2)
zwi2 = cos(waerg2/2)
zwi3 = cos(waerg3/2)
laengewha = round((2 * seiteb * seitec * zwi1)/(seiteb + seitec),p3)
laengewhb = round((2 * seitea * seitec * zwi2)/(seitea + seitec),p3)
laengewhy = round((2 * seitea * seiteb * zwi3)/(seitea + seiteb),p3)
# Seitenhalbierenden
erg1 = (2 *(seiteb **2 + seitec **2)- seitea **2)
erg2 = (2 *(seitea **2 + seitec **2)- seiteb **2)
erg3 = (2 *(seiteb **2 + seitea **2)- seitec **2)
seitha = round((sqrt(erg1)/2),p3)
seithb = round((sqrt(erg2)/2),p3)
seithc = round((sqrt(erg3)/2),p3)
# Mittelsenkrechten
# Ankreise
radankreisa = round(((seitec + seitea - seiteb ) /2),p3)
radankreisb = round(((seitec + seiteb - seitea ) /2),p3)
radankreisc = round(((seitec + seiteb + seitea ) /2),p3)
# Returnparameter
sa = round(seitea, p3)
sb = round(seiteb, p3)
sc = round(seitec, p3)
wa = round(winkela, p3)
wb = round(winkelb, p3)
wy = round(winkely, p3)
ho = round(hoehe, p3)
um = round(umfang, p3)
fl = round(flaeche, p3)
ru = round(radumkreis, p3)
ri = round(radinkreis, p3)
kp = round(katp, p3)
kq = round(katq, p3)
awa = round(awinkela, p3)
awb = round(awinkelb, p3)
awy = round(awinkely, p3)
raf = round(radfeuerb, p3)
rka = round(radankreisa, p3)
rkb = round(radankreisb, p3)
rkc = round(radankreisc, p3)
lwa = round(laengewha, p3)
lwb = round(laengewhb, p3)
lwy = round(laengewhy, p3)
gra = round(grorechtecka, p3)
grb = round(grorechteckb, p3)
grf = round(flgrorecht, p3)
gru = round(umgrorecht, p3)
grp = round(flaprozvomdrei, p3)
sha = round(seitha, p3)
shb = round(seithb, p3)
shc = round(seithc, p3)
qra = round(quadla, p3)
qrf = round(quadfl, p3)
qru = round(quadum , p3)
qrp = round(flaprozvomquad, p3)
if p4 == "p":
print("die Seitenlänge a beträgt: ", seitea, ein)
print("die Seitenlänge b beträgt: ", seiteb, ein)
print("die Seitenlänge c beträgt: ", seitec, ein)
print()
print("der Unfang beträgt: ", umfang, ein)
print("die Höhe beträgt: ", hoehe, ein)
print()
print("der Radius des Umkreise beträgt: ", radumkreis, ein)
print("der Radius des Innkreis beträgt: ", radinkreis, ein)
print()
print("der Radius des Ankreises a beträgt: ", radankreisa, ein)
print("der Radius des Ankreises b beträgt: ", radankreisb, ein)
print("der Radius des Ankreises c beträgt: ", radankreisc, ein)
print()
print("die Fläche beträgt: ", flaeche, "quadrat", ein)
print()
print("der Schwerpunkt XS beträgt: ", spxs, ein)
print("der Schwerpunkt hS beträgt: ", sphs, ein)
print()
print("die Kathete p beträgt: ", katp, ein)
print("die Kathete q beträgt: ", katq, ein)
print()
print("der Winkel alpha gerundet beträgt: ", winkela , "Grad")
print("der Winkel beta gerundet beträgt: ", winkelb, "Grad")
print("der Winkel gamma gerundet beträgt: " , winkely, "Grad")
print("Die Summe der Winkel gerundet beträgt: ", allewi, "Grad")
print()
print("der aussen Winkel alpha gerundet beträgt: ", awinkela , "Grad")
print("der aussen Winkel beta gerundet beträgt: ", awinkelb, "Grad")
print("der aussen Winkel gamma gerundet beträgt: " , awinkely, "Grad")
print()
# print("der Feuerbachpunkt beträgt: ?", feuerbach, ein)
# print("Koordinate des Feuerbachpunkt beträgt: ", fbp1, ein)
# print("Koordinate des Feuerbachpunkt beträgt: ", fbp2, ein)
# print("Koordinate des Feuerbachpunkt beträgt: ", fbp3, ein)
print("der Radius des Feuerbachkreises beträgt: ", radfeuerb, ein)
print()
print("die Länge der Winkelhalbierenden wa beträgt: ", laengewha, ein)
print("die Länge der Winkelhalbierenden wb beträgt: ", laengewhb, ein)
print("die Länge der Winkelhalbierenden wy beträgt: ", laengewhy, ein)
print()
print("Länge a des grössten Rechtecks im Dreieck: ", grorechtecka, ein)
print("Länge b des grössten Rechtecks im Dreieck: ", grorechteckb, ein)
print("Fläche des grössten Rechtecks im Dreieck", flgrorecht, "quadrat", ein)
print("Umfang des grössten Rechtecks im Dreieck", umgrorecht, ein)
print("Prozentanteil des grössten Rechtecks im Dreieck", flaprozvomdrei, "%")
print()
print("die Seitenlänge grösstes Quadrat im Dreieck: ", quadla, ein)
print("die Fläche grösstes Quadrat im Dreieck: ", quadfl, "quadrat", ein)
print("der Umfang grösstes Quadrat im Dreieck: ", quadum, ein)
print("Prozentanteil des grössten Quadrat im Dreieck", flaprozvomquad, "%")
print()
print("die Seitenhalbierende Sa beträgt: ", seitha, ein)
print("die Seitenhalbierende Sb beträgt: ", seithb, ein)
print("die Seitenhalbierende Sc beträgt: ", seithc, ein)
print()
return sa, sb, sc, wa, wb, wy, ho, um, fl, ru, ri, kp, \
kq, awa, awb, awy, raf, rka, rkb, rkc, lwa, lwb, \
lwy, gra, grb, grf, gru, grp, sha, shb, shc, qra, \
qrf, qru, qrp
# *************************************** Dreieck gleichseitig ***********
# Seite a oder b oder c gegeben
def glseiabc(a1,p3):
seitea = a1
seitec = a1
seiteb = a1
return seitea, seiteb, seitec
# Seite a oder b oder c gegeben
def glseiflaeche(seitea,p3):
flaeche = ((seitea **2)/4)*sqrt(3)
return flaeche
# Seite a oder b oder c gegeben
def glseiumfang(seitea,p3):
umfang = seitea * 3
return umfang
# Winkel a oder b oder c gegeben
def glseiwiabc(a1,p3):
winkela = 60
winkelb = 60
winkely = 60
return winkela, winkelb, winkely
# Hoehe berechnen
def glseihoehe(seitea,p3):
hoehe = round((seitea/2)*(sqrt(3)),p3)
return hoehe
# Hoehe ist gegeben
def glseihc(a1,p3):
hoehe = a1
seitea = round(sqrt((4*a1**2)/3),p3)
seitec = seitea
seiteb = seitea
return seitea, seiteb, seitec
# Radius Umkreis berechnen
def glseiraumkr(seitea,p3):
radumkreis = round(((sqrt(3)/3)*seitea),p3)
return radumkreis
# Radius Innenkreis berechnen
def glseirainnen(seitea,p3):
radinkreis = round(((sqrt(3)/6)*seitea),p3)
return radinkreis
# Aussenwinkel berechnen
def glseiausswi(winkela,p3):
awinkela = 360 - winkela
awinkelb = 360 - winkela
awinkely = 360 - winkela
return awinkela, awinkelb, awinkely
# Winkelhalbierende berechnen
def glseiwinhalb(hoehe,p3):
laengewha = hoehe
laengewhb = hoehe
laengewhy = hoehe
return laengewha, laengewhb, laengewhy
# Winkelhalbierende berechnen
def glseiseithalb(hoehe,p3):
seitha = hoehe
seithb = hoehe
seithc = hoehe
return seitha, seithb, seithc
# Gleichseitiges Dreeick
def reglseidreieck(p1,a1,ein,p3,p4=False):
# Winkel
winkela, winkelb, winkely = glseiwiabc(a1,p3)
# Seiten a und c gegeben
if (p1 == "a" or p1 == "b" or p1 == "c"):
seitea, seiteb, seitec = glseiabc(a1,p3)
# Hoehe ist gegeben
if (p1 == "h"):
seitea, seiteb, seitec = glseihc(a1,p3)
# Fläche
flaeche = glseiflaeche(seitea,p3)
# Umfang
umfang = glseiumfang(seitea,p3)
# Hoehe
hoehe = glseihoehe(seitea,p3)
# Hoehe
radumkreis = glseiraumkr(seitea,p3)
# Hoehe
radinkreis = glseirainnen(seitea,p3)
# Aussenwinkel
awinkela, awinkelb, awinkely = glseiausswi(winkela,p3)
# Winkelhalbierende
laengewha, laengewhb, laengewhy = glseiwinhalb(hoehe,p3)
# Seitenhalbierende
seitha, seithb, seithc = glseiseithalb(hoehe,p3)
# Returnparameter
sa = round(seitea, p3)
wa = round(winkela, p3)
ho = round(hoehe, p3)
um = round(umfang, p3)
fl = round(flaeche, p3)
ru = round(radumkreis, p3)
ri = round(radinkreis, p3)
awa = round(awinkela, p3)
lwa = round(laengewha, p3)
sha = round(seitha, p3)
# Ausdruck wenn p4 = P
if p4 == "p":
print("die Seitenlängen betragen je: ", sa, ein)
print("die Winkel betragen je: ", wa, ein)
print()
print("die Fläche beträgt: ", fl, "quadrat", ein)
print("der Unfang beträgt: ", um, ein)
print("die Höhe beträgt: ", ho, ein)
print()
print("der Radius des Umkreise beträgt: ", ru, ein)
print("der Radius des Innkreis beträgt: ", ri, ein)
print()
print("der Länge der Winkelhalbierende betragen: ", lwa, ein)
print("der Länge der Seitenhalbierenden betragen: ", sha, ein)
print()
return sa, wa, ho, um, fl, ru, ri, awa, \
lwa, sha
# *************************************** Dreieck gleichschenklig ***********
# Winkel a oder b oder c gegeben
def glschenwiabc(a1,a2,p3):
seitea = a1
seiteb = a1
seitec = a2
hoehe = round(sqrt(((4*seitea**2)-(seitec**2))/4),p3)
zwi1 = arccos(seitec / (2*seitea))
winkela = round(((zwi1 * 180)/pi) ,p3)
winkelb = winkela
winkely = 180 - winkela -winkelb
return hoehe, seitea, seiteb, seitec, winkela, winkelb, winkely
# Seite a oder b oder c gegeben
def glschwia(a1,a2,p3):
seitea = a1
seiteb = a1
zwi1 = ((a2*pi)/180)
seitec = round((sin(zwi1/2)*(2*seitea)),p3)
hoehe = round(sqrt(((4*seitea**2)-(seitec**2))/4),p3)
winkely = a2
winkela = (180 - winkely)/2
winkelb = winkela
return seitea, seiteb, seitec, hoehe, winkela, winkelb, winkely
# Umfang berechnen
def glschwumf(seitea,seitec,p3):
umfang = seitea + seitea + seitec
return umfang
# Fläche berechnen
def glschwfla(hoehe,seitec,p3):
flaeche = hoehe * (seitec / 2)
return flaeche
# Umkreis berechnen
def glschumkr(hoehe,seitec,p3):
radumkreis = round((((hoehe**2 * 4) + seitec**2) / (hoehe * 8)),p3)
return radumkreis
# Umkreis berechnen
def glschinkr(hoehe,seitea,seitec,p3):
radinkreis = round(((hoehe * seitec) / (2 * seitea + seitec)),p3)
return radinkreis
# Umkreis berechnen
def glschseit(seitea,seitec,p3):
seitha = round((sqrt((seitea**2) + (2 * seitec**2))/2),p3)
seithc = round((sqrt((4*seitea**2) - (seitec**2))/2),p3)
return seitha, seithc
# Gleichschenkliges Dreeick
def reglschdreieck(p1,a1,p2,a2,ein,p3,p4=False):
# Seiten a oder b und winkel y gegeben
if (p1 == "a" or p1 == "b"):
if(p2 == "wc"):
seitea, seiteb, seitec, hoehe, winkela, winkelb, winkely = glschwia(a1,a2,p3)
a1 = seitea
a2 = seitec
# Prüfen ob Dreieck möglich
abbruch = 0
ergabc = (2 * a1) - a2
if (ergabc == 0 or ergabc < 0):
print()
print()
print("Ein unmögliches Dreieck, da die Seiten a plus b kleiner oder gleich als c sind ")
print()
print()
abbruch = 1
if(abbruch ==0):
# Winkel
if (p1 == "a" or p1 == "b"):
if(p2 == "c"):
hoehe, seitea, seiteb, seitec, winkela, winkelb, winkely = glschenwiabc(a1,a2,p3)
if (p1 == "b" or p1 == "a"):
if(p2 == "c"):
hoehe, seitea, seiteb, seitec, winkela, winkelb, winkely = glschenwiabc(a1,a2,p3)
# Umfang berechnen
umfang = glschwumf(seitea,seitec,p3)
# Fläche berechnen
flaeche = glschwfla(hoehe,seitec,p3)
# Umkreis berechnen
radumkreis = glschumkr(hoehe,seitec,p3)
# Innenkreis berechnen
radinkreis = glschinkr(hoehe,seitea,seitec,p3)
# Seitenhalbierendes berechnen
seitha, seithc = glschseit(seitea,seitec,p3)
# Returnparameter
# sa = round(seitea, p3)
# wa = round(winkela, p3)
ho = round(hoehe, p3)
wa = round(winkela,p3)
wb = round(winkelb,p3)
wy = round(winkely,p3)
um = round(umfang, p3)
fl = round(flaeche, p3)
ru = round(radumkreis, p3)
ri = round(radinkreis, p3)
sha = round(seitha, p3)
shc = round(seithc, p3)
# awa = round(awinkela, p3)
# lwa = round(laengewha, p3)
gold1 = round(winkela,0)
print()
if(gold1 == 72):
print("dies ist ein goldenes Dreieck 1. Art ")
print()
print()
if(gold1 == 36):
print("dies ist ein goldenes Dreieck 2. Art ")
print()
print()
# Ausdruck wenn p4 = P
if p4 == "p":
print("die Seite a beträgt : ", seitea, ein)
print("die Seite b beträgt : ", seiteb, ein)
print("die Seite c beträgt : ", seitec, ein)
print()
print("die Höhe hc beträgt : ", ho, ein)
print()
print("Der Winkel Alpha beträgt : ", wa, "Grad")
print("Der Winkel Beta beträgt : ", wb, "Grad")
print("Der Winkel Gamma beträgt : ", wy, "Grad")
print()
print("der Umfang beträgt : ", um, ein)
print("die Fläche beträgt : ", fl, "quadrat", ein)
print()
print("der Radius des Umkreis beträgt : ", ru, ein)
print("der Radius des Innenkreises beträgt : ", ri, ein)
print()
print("die Seitenhalbierenden Sa, Sb betragen : ", sha, ein)
print("die Seitenhalbierende Sc beträgt : ", shc, ein)
print()
return ho, wa, wb, wy, um, fl, ru, ri, sha, shc
# print(rewidreieck("c",5,"wb", 53.13,"cm",3,"p"))
def dreiprint(sa, sb, sc, wia, wib, wiy, ho, kp, kq, lwa, lwb, lwy, sha, shb, shc, fl, um, ru ):
xx = -200
yy = -60
multi = 100
if sa < 50:
sa = sa * multi
sb = sb * multi
sc = sc * multi
ho = ho * multi
kp = kp * multi
kq = kq * multi
lwa = lwa * multi
lwb = lwb * multi
lwy = lwy * multi
sha = sha * multi
shb = shb * multi
shc = shc * multi
fl = fl * multi
um = um * multi
ru = ru * multi
turtle.speed('fastest')
turtle.color('purple')
turtle.pensize(2)
# Seite a,b und c
turtle.pu()
turtle.goto(xx, yy)
turtle.down()
turtle.forward(sc)
turtle.pu()
turtle.goto(xx, yy)
turtle.down()
turtle.left(wia)
turtle.forward(sb)
turtle.right(90)
turtle.forward(sa)
# Seite q und p, Hypotenusenabschnitte
turtle.pu()
turtle.home ()
turtle.color('blue')
turtle.pensize(1)
turtle.goto(xx, yy-1)
turtle.down()
turtle.forward(kq)
turtle.color('black')
turtle.forward(kp)
turtle.pu()
turtle.home ()
turtle.goto(xx, yy-15)
turtle.forward(kq/2)
turtle.write('q', align="center")
turtle.pu()
turtle.forward(kq/2)
turtle.forward(kp/2)
turtle.down()
turtle.write('p', align="center")
turtle.pu()
# Höhe hc
turtle.pu()
turtle.home ()
turtle.goto(xx, yy)
turtle.color('black')
turtle.pensize(1)
turtle.forward(kq)
turtle.left(90)
turtle.down()
turtle.forward(ho)
turtle.pu()
turtle.home ()
turtle.goto(xx, yy)
turtle.forward(kq)
turtle.left(90)
turtle.forward(ho/2)
turtle.down()
turtle.write('hc', align="left")
turtle.pu()
turtle.home ()
turtle.goto(xx, yy)
# Seitenhalbierende a
turtle.pu()
turtle.home ()
turtle.goto(xx, yy)
turtle.left(wia)
turtle.forward(sb/2)
turtle.down()
turtle.color('red')
turtle.write('Sha ', align="center")
turtle.pensize(1)
turtle.goto(xx + sc, yy)
# Seitenhalbierende b
turtle.pu()
turtle.home ()
turtle.goto(xx, yy)
turtle.left(wia)
turtle.forward(sb)
turtle.right(90)
turtle.forward(sa/2)
turtle.down()
turtle.color('red')
turtle.write('Shb', align="left")
turtle.pensize(1)
turtle.goto(xx, yy)
# Seitenhalbierende b
turtle.pu()
turtle.home ()
turtle.goto(xx, yy)
turtle.left(wia)
turtle.forward(sb)
turtle.down()
turtle.color('red')
turtle.pensize(1)
turtle.goto(xx + sc/2, yy)
turtle.write('Shc ', align="center")
# Winkelhalbierende a
turtle.pu()
turtle.home ()
turtle.goto(xx, yy)
turtle.left(wia / 2)
turtle.down()
turtle.color('green')
turtle.pensize(1)
turtle.forward(lwa)
turtle.write('Wa', align="left")
# Winkelhalbierende b
turtle.pu()
turtle.home ()
turtle.goto(xx, yy)
turtle.forward(sc+1)
turtle.left(180)
turtle.right(wib / 2)
turtle.down()
turtle.color('green')
turtle.pensize(1)
turtle.forward(lwb)
turtle.write('Wb', align="center")
# Winkelhalbierende c
turtle.pu()
turtle.home ()
turtle.goto(xx, yy)
turtle.left(wia)
turtle.forward(sb)
turtle.right(90)
turtle.right(45)
turtle.down()
turtle.color('green')
turtle.pensize(1)
turtle.forward(lwy)
turtle.write('Wc', align="right")
# Umkreis
turtle.pu()
turtle.home ()
turtle.goto(xx, yy)
turtle.color('yellow')
turtle.pensize(2)
turtle.forward(sc)
turtle.left(90)
turtle.down()
turtle.circle(ru)
turtle.pu()
turtle.home ()
turtle.goto(xx + sc, yy + 60)
turtle.down()
turtle.color('black')
turtle.write('Uk', align="right")
# Turtle Home
turtle.pu()
turtle.home ()
turtle.goto(xx, yy)
# Winkelhalbierende
turtle.color('black')
turtle.goto(xx + 5, -100)
turtle.write('Winkelhalbierende Wa =', align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 176, -100)
turtle.write(lwa, align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 5, -116)
turtle.write('Winkelhalbierende Wb =', align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 176, -116)
turtle.write(lwb, align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 5, -132)
turtle.write('Winkelhalbierende Wc =', align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 176, -132)
turtle.write(lwy, align="left", font=('Courier', 9, 'normal'))
# Seitenhalbierende
turtle.goto(xx + 250, -100)
turtle.write('Seitenhalbierende Sa =', align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 420, -100)
turtle.write(sha, align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 250, -116)
turtle.write('Seitenhalbierende Sb =', align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 420, -116)
turtle.write(shb, align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 250, -132)
turtle.write('Seitenhalbierende Sc =', align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 420, -132)
turtle.write(shc, align="left", font=('Courier', 9, 'normal'))
# Winkel im Dreieck
turtle.goto(xx + 5, -164)
turtle.write('Winkel Alpha =', align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 176, -164)
turtle.write(wia, align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 5, -180)
turtle.write('Winkel Beta =', align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 176, -180)
turtle.write(wib, align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 5, -196)
turtle.write('Winkel BGamma =', align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 176, -196)
turtle.write(wiy, align="left", font=('Courier', 9, 'normal'))
# Seiten
turtle.goto(xx + 250, -164)
turtle.write('Seiten sa = ', align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 420, -164)
turtle.write(sa, align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 250, -180)
turtle.write('Seiten sb = ', align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 420, -180)
turtle.write(sb, align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 250, -196)
turtle.write('Seiten sc = ', align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 420, -196)
turtle.write(sc, align="left", font=('Courier', 9, 'normal'))
# Höhe, Fläche, Umfang
turtle.goto(xx + 5, -228)
turtle.write('Die Höhe hc =', align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 176, -228)
turtle.write(ho, align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 5, -244)
turtle.write('Fläche des Dreieckes =', align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 176, -244)
turtle.write(fl, align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 5, -260)
turtle.write('Umfang des Dreieckes =', align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 176, -260)
turtle.write(um, align="left", font=('Courier', 9, 'normal'))
# Hypotenuse. Umkreis, Innenkreis
turtle.goto(xx + 250, -228)
turtle.write('Hypotenuse p =', align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 420, -228)
turtle.write(kp, align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 250, -244)
turtle.write('Hypotenuse q =', align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 420, -244)
turtle.write(kq, align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 250, -258)
turtle.write('Radius Umkreis Uk =', align="left", font=('Courier', 9, 'normal'))
turtle.goto(xx + 420, -258)
turtle.write(ru, align="left", font=('Courier', 9, 'normal'))
# Ende
turtle.pu()
turtle.home ()
turtle.goto(xx, yy)
turtle.done()
def symboldruck(druck):
# Seitenberechnungen
pythagorasa = "sqrt(c**2 - b **2)"
pythagorasb = "sqrt(c**2 - a **2)"
pythagorasc = "sqrt(a**2 + b **2)"
# Seiten über Winkelberechnungen
sinseitec = "(seitea / sin(((wi_alpha * pi)/180)))"
cosseitec = "(seitea / cos(((wi_beta * pi)/180)))"
# Winkelberechnungen über Seiten
winkelaa = "(((arcsin(seitea/seitec)) *180))/pi"
# Höhe, Fläche und Umfang
umfang = "seitea + seitec + seiteb"
flaeche = "(seitea * seiteb)/2"
hoehe = "(seitea * seiteb) / seitec"
# Kreise
radumkreis = "seitec/2"
radinkreis = "((seitea * seiteb)/(seitea + seiteb + seitec))"
# Aussenwinkel
awinkela = "360-winkela"
awinkelb = "360-winkelb"
awinkely = "360-winkely"
# Feuerbachkreis
radfeuerb = "radumkreis / 2)"
# Kathetensatz - Hypotenusenabschnitte
katp = "(seitea **2)/seitec"
katq = "(seiteb **2)/seitec"
# Größtes Rechteck im Dreieck bei rewi = h/2 * c/2
grorechtecka = "seitec/2"
grorechteckb = "hoehe/2"
flgrorecht = "grorechtecka * grorechteckb"
umgrorecht = "2 * grorechtecka + 2 * grorechteckb"
flaprozvomdrei = "((flrecht / fldrei) * 100)"
# Winkelhalbierende
laengewha = "(2 * seiteb * seitec * cos(((winkela * pi) / 180)/2)) / (seiteb + seitec)"
laengewhb = "(2 * seitea * seitec * cos(((winkelb * pi) / 180)/2))/(seitea + seitec)"
laengewhy = "(2 * seitea * seiteb * cos(((winkely * pi) / 180)/2))/(seitea + seiteb)"
# Seitenhalbierende
seitha = "sqrt(seitea **2 / 4 + (seiteb **2))"
seithb = "sqrt(seitea **2 + (seiteb **2 / 4))"
seithc = "seitec/2"
# Ankreise
radankreisa = "(seitec + seitea - seiteb ) /2"
radankreisb = "(seitec + seiteb - seitea ) /2"
radankreisc = "(seitec + seiteb + seitea ) /2"
# Größtes Quadrat im Dreieck
quad1 = "(seitea * seiteb) / (seitea + seiteb)"
quad2 = "(hoehe * seitec) / (hoehe + seitec)"
quadfl = "quad1 * quad1"
quadum = "quad1* 4"
flaprozvomquad = "(quadfl / flaeche) * 100"
if druck == "p":
# Seitenberechnungen
print()
print( "Seiten a wird über den Satz des Pythagoras ermittelt: ", end=' '), \
print(pythagorasa)
print( "Seiten b wird über den Satz des Pythagoras ermittelt: ", end=' '), \
print(pythagorasb)
print( "Seiten c wird über den Satz des Pythagoras ermittelt: ", end=' '), \
print(pythagorasc)
print()
# Seiten über Winkelberechnungen
print( "Seiten c über a und Sinus mit Umwandlung von Grad: ", end=' '), \
print(sinseitec)
print( "Seiten c über a und Cosinus mit Umwandlung von Grad: ", end=' '), \
print(cosseitec)
print()
# Winkelberechnungen
print( "Winkel A über Seite a, c mit arcsin und Umwandlung in Grad ", end=' '), \
print(winkelaa)
print()
# Höhe, Fläche und Umfang
print( "Der Umfang des Dreiecks ", end=' '), \
print(umfang)
print( "Die Fläche des Dreiecks ", end=' '), \
print(flaeche)
print( "Die Höhe des Dreiecks ", end=' '), \
print(hoehe)
print()
# Kreise
print( "Radius des Umkreises ", end=' '), \
print(radumkreis)
print( "Radius des Innenkreises ", end=' '), \
print(radinkreis)
print()
# Aussenwinkel
print( "Der Aussenwinkel Alpha ", end=' '), \
print(awinkela)
print( "Der Aussenwinkel Beta ", end=' '), \
print(awinkelb)
print( "Der Aussenwinkel Gamma ", end=' '), \
print(awinkely)
print()
# Feuerbachkreis
print( "Der Radius des Feuerbachkreises ", end=' '), \
print(radfeuerb)
print()
# Kathetensatz - Hypotenusenabschnitte
print( "Hypotenusenabschnit q ", end=' '), \
print(katq)
print( "Hypotenusenabschnit p ", end=' '), \
print(katp)
print()
# Größtes Rechteck im Dreieck bei rewi = h/2 * c/2
print( "Länge a des grössten Rechtecks im Dreick: ", end=' '), \
print(grorechtecka)
print( "Länge b des grössten Rechtecks im Dreick: ", end=' '), \
print(grorechteckb)
print( "Umfang des grössten Rechtecks im Dreick: ", end=' '), \
print(umgrorecht)
print( "Fläche des grössten Rechtecks im Dreick: ", end=' '), \
print(flgrorecht)
print( "Prozentualer Anteil Rechteck im Dreick: ", end=' '), \
print(flaprozvomdrei)
print()
# Winkelhalbierende
print( "Die Winkelhalbierende Alpha ", end=' '), \
print(laengewha)
print( "Die Winkelhalbierende Beta ", end=' '), \
print(laengewhb)
print( "Die Winkelhalbierende Gamma ", end=' '), \
print(laengewhy)
print()
# Seitenhalbierende
print( "Die Seitenhalbierende a ", end=' '), \
print(seitha)
print( "Die Seitenhalbierende b ", end=' '), \
print(seithb)
print( "Die Seitenhalbierende c ", end=' '), \
print(seithc)
print()
# Ankreise
print( "Der Radius des Ankreis a beträgt ", end=' '), \
print(radankreisa)
print( "Der Radius des Ankreis b beträgt ", end=' '), \
print(radankreisb)
print( "Der Radius des Ankreis c beträgt ", end=' '), \
print(radankreisc)
print()
# Größtes Quadrat im Dreieck
print( "Länge a des grössten Quadradts im Dreick: ", end=' '), \
print(quad1)
print( "oder mit dieser Formel, je nach Lage : ", end=' '), \
print(quad2)
print( "Umfang des grössten Quadradts im Dreick: ", end=' '), \
print(quadum)
print( "Fläche des grössten Quadradts im Dreick: ", end=' '), \
print(quadfl)
print( "Prozentualer Anteil Quadrat im Dreick: ", end=' '), \
print(flaprozvomquad)
print()