Seite 1 von 1

gleichseitiges Dreieck

Verfasst: Samstag 10. September 2022, 17:58
von Pitwheazle
Ich schon wieder:
Meine Quadrate sehen quadratisch aus, mein gleichseitiges Dreieck aber nicht gleichseitig:
Bild
Ein Ausschnitt aus dem Code:

Code: Alles auswählen

text = "Wie nennt man so ein Dreieck?"
            h_hoehe = 250
            h_breite = 400
            anmerkung = "(alle drei Seiten sind gleich lang)"
            breite = random.randint(50, 100)
            seite = breite
            print(breite)
            hoehe =(seite**2-(int(breite/2))**2)**0.5
            print(hoehe)
            x0 = int((h_breite - breite)/2)
            y0 = h_hoehe-int((h_hoehe - hoehe)/2)
            x1 = x0
            x2 = x0 + breite
            x3 = x0 + int(breite/2)
            y1 = y2 = y0 + int(hoehe/2)
            y3 = y0 - hoehe
            grafik = {'name': 'svg/geometrie.svg', 'object': 'dreieck', 'h_hoehe': h_hoehe, 'h_breite': h_breite,
                'x1':x1, 'y1':y1,'x2':x2, 'y2':y2,'x3':x3, 'y3':y3              
            }                   
print(breite) ergibt hier 57 und print(hoehe) ergibt 49,65. Kann ich keinen Pythagoras mehr:
Der svg Code:

Code: Alles auswählen

        <polygon points="{{grafik.x1}},{{grafik.y1}} {{grafik.x2}},{{grafik.y2}} {{grafik.x3}},{{grafik.y3}}"  style="stroke:black;stroke-width:1;fill: #E0FFFF"/>
... oder habe ich was anderes übersehen?

Re: gleichseitiges Dreieck

Verfasst: Samstag 10. September 2022, 18:17
von Sirius3
Hast Du mal ausgerechnet, wie viel Höher y3 als y1/2 liegt?
Die Lage der Buchstaben im Bild passt nicht so richtig.
Warum ist das Dreieck so klein und so viel der graue Bereich drumherum so groß?

Re: gleichseitiges Dreieck

Verfasst: Samstag 10. September 2022, 21:31
von Pitwheazle
Sirius3 hat geschrieben: Samstag 10. September 2022, 18:17 Die Lage der Buchstaben im Bild passt nicht so richtig.
Das mit dem Anpassen der Lage der Beschriftungen mache ich so (und probiere ein Bischen rum):

Code: Alles auswählen

            ecken_x = [-10,-2,-7]                            #schieb Benennung in x
            ecken_y = [25,25,-10]                            #schieb Benennung in y
            xkoo = [x1, x2, x3, x1]
            ykoo = [y1, y2, y3, y1]
            seiten_x = [-2,10,-20,0]                         #schieb Benennung in x
            seiten_y = [20,0,0,10]                           #schieb Benennung in y
            grafik = {'name': 'svg/geometrie.svg', 'object': 'dreieck', 'h_hoehe': h_hoehe, 'h_breite': h_breite,
                'x1':x1, 'y1':y1,'x2':x2, 'y2':y2,'x3':x3, 'y3':y3,
                'ecken': [
                    (xkoo[n]+ecken_x[n], ykoo[n]+ecken_y[n], ecken[n]) for n in (range(0,3))
                ],
                'seiten': [
                    ((xkoo[n]+xkoo[n+1])/2+seiten_x[n], (ykoo[n]+ykoo[n+1])/2+seiten_y[n], seiten[n]) for n in range(0,3)
                    ],
            } 
... gibt es da eine bessere Methode?
Sirius3 hat geschrieben: Samstag 10. September 2022, 18:17 Hast Du mal ausgerechnet, wie viel Höher y3 als y1/2 liegt?
Nun ja, Er liegt um "hoehe" höher. Nachdem ich nach deiner Frage das Programm wieder gestartet hat, sieht das jetzt gleichseitig aus - weiß der Geier warum das jetzt geht (doch, ich habe gespeichert)
Sirius3 hat geschrieben: Samstag 10. September 2022, 18:17 Warum ist das Dreieck so klein und so viel der graue Bereich drumherum so groß?
Nun ja, ich denke, das liegt daran, dass ich eine feste Viewbox erzeuge, die Größe der Grafiken aber mit Zufallszahlen erzeuge, die sind dann halt kleiner. Das gefällt mir auch noch nicht, da muss ich wohl nochmal dran.