User since
2005-08-31
23
Artikel
BenutzerIn
Nein, der Code bezog sich nicht auf GED. Das war allgemein. Ich habe mittlerweile einwenig herumprogrammiert, so dass ich auf die Events nicht mehr zwangsläufig angewiesen bin (wenngleich es mir nach wie vor schleierhaft ist, was da falsch war). Allerdings bin ich wieder auf kurioses Verhalten in Bezug auf <Enter> und <Leave> gestoßen.
Das <Enter>-Event malt einen Kreis, das <Leave>-Event löscht ihn wieder. Das sind einfach eine createOval- und eine delete-Anweisung. Nun ist es so, dass <Enter> nicht in jedem Fall aufgerufen wird, in dem ich die Maus in einen Knoten bewege. In nicht reproduzierbaren Fällen geht das Programm in eine Endlosschleife über, in der die Events <Enter> und <Leave> abwechselnd aufgerufen werden und zwar vollkommen unabhängig von der Position des Mauszeigers. Ändern kann ich dieses Verhalten nur, wenn ich in einer der beiden Callback-Funktionen $self->update aufrufe. Ansonsten ist Hopfen und Malz verloren. Habe ich hier ein generelles Verständisproblem beim Perl-Eventhandling?
User since
2003-08-04
5873
Artikel
ModeratorIn
Nochmal zu Deinen Anforderungen oben: Das mit den Kanten, die nicht zum Zentrum der Ecken läuft, sondern nur an diese stößt, war nicht ganz trivial und ist in GED gelöst. Ich würde an Deiner Stelle wirklich nicht bei 0 anfangen... aber jeder ist seines Glückes Schmied.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;
use strict; use warnings; Link zu meiner Perlseite
User since
2005-08-31
23
Artikel
BenutzerIn
QuoteDas mit den Kanten, die nicht zum Zentrum der Ecken läuft, sondern nur an diese stößt, war nicht ganz trivial und ist in GED gelöst.
Naja, mittlerweile habe ich es geschafft, die Knoten über rechtwinklige Kanten zu verbinden. Das funktioniert über horizontale und vertikale Kollisionserkennung. Trivial war das in der Tat nicht... Abgerundete Linien zeichne ich mittels Parabeln, wobei der Scheitelpunkt und ein weiterer Punkt auf der Parabel anzugeben sind. Daran muss ich aber noch etwas arbeiten...
User since
2003-08-04
14371
Artikel
ModeratorIn
Kannst Du das mit der Kollisionserkennung mal zeigen?? Wäre daran interessiert...
User since
2005-08-31
23
Artikel
BenutzerIn
Ja, klar. Gib mir bitte noch ein paar Tage, dass ich ausreichend testen kann. Schließlich will ich mich ja nicht blamieren ;-) Ich schicke Dir die Code-Ausschnitte dann per E-Mail.
User since
2003-08-04
14371
Artikel
ModeratorIn
Es gibt da kein blamieren... Ich freue mich schon darauf. Danke...
User since
2003-11-28
3645
Artikel
ModeratorIn
[quote=renee,15.09.2005, 11:34]Kannst Du das mit der Kollisionserkennung mal zeigen?? Wäre daran interessiert...[/quote]
Man kann mit
$canvas->find("closest", ...)
(oder overlapping oder enclosed) eine sehr einfach gestrickte Kollisionserkennung bauen (wahrscheinlich nur für rechteckige Objekte brauchbar)
User since
2003-08-04
14371
Artikel
ModeratorIn
@ptk: Du hast mir gerade sehr bei einem Problem geholfen... Danke!