Ich denke mal, dass das hier reingehört, also rein damit.
Ich progge mit nem freund ein programm, so eine art virtuelle petrischale.
Jetzt haben wir ein problem: mutation usw. haben wir schon ausgeklügelt, aber beim "bemerken" von anderen objekten haperts.
habe schon was zur kollisionserkennung gefunden.
jetzt zum problem:
wie kann man es machen, dass z.b. ein kreis "daliegt" und x pixel weiter ein "futterteilchen" liegt, und der kreis sich darauf zubewegt.
Hilfe!?
Canvas Objekte "bemerken"
-
- User
- Beiträge: 43
- Registriert: Samstag 13. Februar 2010, 18:14
- Wohnort: Sauerbratenserver
-
- User
- Beiträge: 43
- Registriert: Samstag 13. Februar 2010, 18:14
- Wohnort: Sauerbratenserver
ich weiss, wie ich es bewege.
aber wie erkenne ich das objekt? das ziel?
aber wie erkenne ich das objekt? das ziel?
@Maximilianibus: Den Abstand von Deinem "Organismus" zu allen Futterteilchen ausrechnen und dann auf das zubewegen was am nächsten ist!? So etwas sollte man unabhängig von der GUI implementieren. Sonst ist Deine Simulation ja von `Tkinter` abhängig.
-
- User
- Beiträge: 43
- Registriert: Samstag 13. Februar 2010, 18:14
- Wohnort: Sauerbratenserver
ja, ich werde mal schauen.
apropos, können mehrere python-skripte irgendwwelche parameter austauschen?
apropos, können mehrere python-skripte irgendwwelche parameter austauschen?
@Maximilianibus: Das wäre eher eine neue Frage für einen neuen Thread. Die Antwort ist ja.
-
- User
- Beiträge: 43
- Registriert: Samstag 13. Februar 2010, 18:14
- Wohnort: Sauerbratenserver
danke trotzdem.
Wie war das noch ...
Die .create_...-Methoden geben eine Zahl zurück.
Das ist eine Id. Die kann man für
usw. verwenden.
...
Mehrere Items kann man auch mit einem Tag versehen.
Im Prinzip kann man so auf jedes Item auf dem Canvas zugreifen.
Gruß
Die .create_...-Methoden geben eine Zahl zurück.
Das ist eine Id. Die kann man für
Code: Alles auswählen
pydoc Tkinter.Canvas.find_all
sozusagenEine Id, sie zu finden, sie alle zu knechten,
ins Dunkel zu treiben und ewig zu binden.

Mehrere Items kann man auch mit einem Tag versehen.
Im Prinzip kann man so auf jedes Item auf dem Canvas zugreifen.
Gruß
Kann sein, ist aber höchstens die zweitbeste Lösung.Pascal hat geschrieben:Vielleicht könnte dir auch die canvas.find_overlapping() - methode helfen
BlackJack hat schon darauf hingewiesen, dass es sinnvoll ist, diese Erkennung von der graphischen Darstellung zu trennen. Praktisch könnte das so aussehen, dass man vom Kreis den Mittelpunkt und den Radius kennt und von jedem Futterteilchen die Position (und, falls es nicht als Punkt gedacht ist, die Bounding-Box oder Radius oder was weiß ich). Aus diesen Information lässt sich dann jederzeit das nächstgelegten Futterteilchen ermitteln - ganz ohne graphische Darstellung.
ja, das ist schon richtig. Aber wenn´s nichts aufwendiges oder umfangreiches werden soll, dann ist man mit find_overlapping eigentlich gut dabei.numerix hat geschrieben:Kann sein, ist aber höchstens die zweitbeste Lösung.Pascal hat geschrieben:Vielleicht könnte dir auch die canvas.find_overlapping() - methode helfen
BlackJack hat schon darauf hingewiesen, dass es sinnvoll ist, diese Erkennung von der graphischen Darstellung zu trennen. Praktisch könnte das so aussehen, dass man vom Kreis den Mittelpunkt und den Radius kennt und von jedem Futterteilchen die Position (und, falls es nicht als Punkt gedacht ist, die Bounding-Box oder Radius oder was weiß ich). Aus diesen Information lässt sich dann jederzeit das nächstgelegten Futterteilchen ermitteln - ganz ohne graphische Darstellung.