Python Tutorial deutsch, #32 Beautiful Trigonometry oder 'Hier rotiert mal gar nichts!'

preview_player
Показать описание
Hier setzen wir die scheinbare Rotation von oszilierenden Punkten aus dem Video "Numberphile - Beautiful Trigonometry" in Python mit PyGame um.

Рекомендации по теме
Комментарии
Автор

Es ist wirklich eine der besten Erklärungen, die ich zu Python gefunden habe. Man kann super nachvollziehen, wie Du vom Problem zum Pythoncode kommst.

ralfkohler
Автор

Noch ein Beispiel zum Thema "Hier rotiert nichts!"

Gravitar
Автор

Also das mit dem rotieren des Punktes um n Segmente und dann auf die x-Achse zu projektieren, ... wär ich nie drauf gekommen.
Mein Ansatz wäre, einen rechten Winkel von der jeweiligen Segment-linie zu zeichnen der durch den rotierenden Punkt geht.
Aber als Programieranfänger wüsste ich nicht wie man das in code umsetzt.
Liebe community ich würde gern eure Gedanken dazu hören.

Tom-hglw
Автор

@Gravitar - irgendwo ist da der Hund drin... auch bei deinem Code auf Github funktioniert das nicht richtig. Bei mir ist das Ergebnis ein sehr langsam rotierender Punkt, keine Linien durch den Kreis sondern nur ein "gelber Komet" der langsam über den Bildschirm huscht .. Beim Debuggen hab ich gemerkt, dass die Koordinaten nicht richtig berechnet werden und pol2cart vermutlich komische Werte zurückliefert.. ich habe mir mal die Werte bei zwei Segmenten und den Start/Endpunkten geprintet und bei mir sieht das dann so aus.

segment_nr: 2, start_angle_segment: 2.0943951023931953, end_angle_segment: 5.235987755982988
start_line: (899.7327894512964, 514.6183801252226), end_line: (898.330910164851, 536.5032328327418)

wenn ich die pol2cart rausnehme und die Rechnung ohne die Vektor-Methode nutze dann klappt es... nur falls jemand anderes das Problem auch hat

for segment_nr in range(segment_count):
delta_angle = math.pi / segment_count
start_angle_segment = delta_angle * segment_nr
end_angle_segment = start_angle_segment + math.pi
start_line_x = math.cos(start_angle_segment) * radius + center
start_line_y = math.sin(start_angle_segment) * radius + center
end_line_x = math.cos(end_angle_segment) * radius + center
end_line_y = math.sin(end_angle_segment) * radius + center
pg.draw.line(screen, (255, 255, 255), (start_line_x, start_line_y), (end_line_x, end_line_y), 3)

Gunsi-kbxq