gleichseitiges Dreieck

Django, Flask, Bottle, WSGI, CGI…
Antworten
Pitwheazle
User
Beiträge: 873
Registriert: Sonntag 19. September 2021, 09:40

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?
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

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ß?
Pitwheazle
User
Beiträge: 873
Registriert: Sonntag 19. September 2021, 09:40

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.
Antworten