Mausfunktion

Fragen zu Tkinter.
Antworten
_so10_
User
Beiträge: 4
Registriert: Mittwoch 21. Dezember 2016, 08:12

Hallo!
Ich brauche unbedingt Hilfe bei der Mausprogrammierung!
Ich hoffe,es kann mir jemand dabei helfen.

Ich muss zum Thema "Interaktive Animationen eines technisch-physikalischen Zusammenhangs" ein Python-3-Programm entwickeln und die Voraussetzung ist,dass zwei Größen unabhängig voneinander mit der Maus beeinflusst werden müssen.

Ich habe mir als Programm "Berechnung von Durchbiegungen und Winkeländerungen eines Kragarms mit Gleichstreckenlast" ausgesucht.
Die "festen" Grafiken stehen fest. Der Balken hat eine Länge von 6m und die Last q beträgt 15kN/m.

Jetzt folgt mein Problem:
Ich hatte vor, unter dem Statischen System mit dem Eingespannten Balken, einen Rechteckquerschnitt von dem Balken darzustellen und dessen Breite und Höhe sollen sich mit der Maus beeinflussen lassen.
Gleichzeitig,wenn die Maus die Höhe und die Breite des Balkens bestimmt,soll sich parallel dazu auch die gestrichelte Durchbiegungslinie des Balkens im Statischen System bewegen.
Nachdem die Breite, die Höhe und die Durchbiegung des Balkens mit der Maus bestimmt wurde,sollen die Werte auch automatisch in den Eingabefeldern erscheinen.

Diesen Teil der Programmierung verstehe ich jedoch nicht. Ich weiß nicht, welche Formeln etc. ich in Python eingeben muss, damit dieser Vorgang geschieht, den ich gerade oben erklärt habe.

Vielen Danke schonmal!
BlackJack

@_so10_: Ich weiss nicht ob ich die Fragestellung richtig verstehe, denn Formeln sind hier ja eher etwas was in den domänenspezifischen Teil fällt, das müsstest Du also schon selber wissen was da wie berechnet werden muss.

Für die Interaktion mit der Maus müsstest Du zwei Seiten des Querschnitts mit der Maus verschiebbar machen und daraus dann von Canvas-Koordinaten auf die ”Weltkoordinaten” Deines Modells zurückrechnen. Zum Verschieben kannst Du Mausereignisse wie das Drücken und Loslassen, sowie das bewegen bei gedrückter Maustaste an Rückruffunktionen/-methoden binden. Schau Dir mal `Canvas.tag_bind()` und die `Canvas.coords()`-Methode an.

Ich würde zum erkunden der Möglichkeiten mit einem Programm anfangen das zum Beispiel einen Kreis darstellt denn man mit der Maus verschieben kann. Dann kannst Du Dir überlegen wie man die Bewegung auf X- oder Y-Richtung beschränkt, denn je nach dem welche Seite des Querschnitts man verschieben will, geht das ja nur in eine dieser beiden Richtungen.
Antworten