[Python-de] Dreieck zeichnen so einfach wie möglich
Peter Otten
__peter__ at web.de
So Apr 7 21:50:01 CEST 2013
Benedikt Schwarz wrote:
> Am 07.04.2013 17:20, schrieb Peter Otten:
>> Benedikt Schwarz wrote:
>>
>>> wie zeichnet man in Python am einfachsten ein Dreieck?
>>
>> Man spezifiziert die drei Eckpunkte und zeichnet dann Strecken zwischen
>> allen Punkt-Kombinationen.
>
> Aber so eine richtige Funktion zum Dreieckzeichnen gibt es anscheinend
> nicht?
Canvas.create_polygon() kann beliebige Vielecke zeichnen. Hier zum Beispiel
ein Dreieck:
import Tkinter as tk
WIDTH = 600
HEIGHT = 300
root = tk.Tk()
canvas = tk.Canvas(root, width=WIDTH, height=HEIGHT)
canvas.pack()
canvas.create_polygon(
(0, HEIGHT),
(500, HEIGHT),
(400, HEIGHT-200))
root.mainloop()
>> Außerdem musst du auch noch irgendwie die Position des Dreiecks auf der
>> Zeichenfläche (Canvas in Tkinter) festlegen.
>
> Längste Seite = Grundlinie. Kann man das so einfach festlegen?
Ich versteh die Frage nicht. Wenn du das Dreieck nicht durch die Koordinaten
der Ecken definieren willst, musst du dich mit der Mathematik dahinter
beschäftigen. Mehr als sin, cos und Pythagoras brauchts dafür aber wohl
nicht. Zum Beispiel:
from math import sin, cos, radians, sqrt
def draw_triangle(a, b, alpha, color="blue"):
alpha = radians(alpha)
p = b*cos(alpha)
h = b*sin(alpha)
q = sqrt(a*a-h*h)
A = (0, HEIGHT)
B = (p+q, HEIGHT)
C = (p, HEIGHT-h)
canvas.create_polygon(A, B, C, fill=color)
draw_triangle(500, 300, 45, "red")
Mehr Informationen über die Mailingliste python-de