Autor |
Beitrag |
torstenheinze
      
Beiträge: 461
|
Verfasst: Fr 14.03.03 19:45
hallo,
wie kann ich herausfinden, welches objekt meinem image am nächsten ist?
|
|
MSCH
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: Fr 14.03.03 20:30
Ich würd ja gerne helfen, aber ich versteh die Frage nicht  Kannst Du das etwas näher erklären?
grüße
MSCH
|
|
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Fr 14.03.03 20:46
Zitat: |
wie kann ich herausfinden, welches objekt meinem image am nächsten ist?
|
Was meinst du mit Objekt ? ein Spiele Objekt ? oder was ?
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
torstenheinze 
      
Beiträge: 461
|
Verfasst: Fr 14.03.03 21:06
also. ich habe 7 panels. und ein image. nun möchte herausfinden, an welchem panel das image am nächsten dran ist.
|
|
MSCH
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: Fr 14.03.03 21:10
Reine Mathematik,
ich würd die Bildschirmkoordiaten vergleichen.
Grüße
MSCH
|
|
Popov
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: Fr 14.03.03 21:16
Ich befürchte, daß du es selbst berechnen mußt. Es gibt zwar API-Möglichkeiten mit Regionen, aber es ist eher was in Richtung ob die sich berühren oder überschneiden oder eine Reion in der anderen. Allerdings ist mir keine Funktion aufgefallen die irgendwas mit Abstand zu tun hat.
Ich würde vorschlagen, daß du dir selbst was baust. Am besten arbeitest du auch mit Bounds oder mit Regionen die dir ein Wert zurückliefern.
_________________ Popov
|
|
torstenheinze 
      
Beiträge: 461
|
Verfasst: Fr 14.03.03 21:43
ok, danke.
ich werd mir eine eigene funktion bauen
|
|
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Fr 14.03.03 22:55
ich werde das mit tags machen du gibt einem panel einen tag und der Image den selben....
und dann ist das doch ein kinderspiel oder ?
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
torstenheinze 
      
Beiträge: 461
|
Verfasst: Sa 15.03.03 13:25
ich hab mit den tags noch net gearbeitet, und ich wusste bisher auch net wozu die gut sind
|
|
DaFox
      
Beiträge: 189
|
Verfasst: Sa 15.03.03 13:49
Hi.
Die Tags sind zur freien Verwendung, d.h. sie haben keinen gezielten Einsatzbereich.
Jeder Programmierer kann diese (z.B. zur Identifizierung) frei verwenden.
Oft lässt man diese einfach durchzählen.
Gruß,
Markus
|
|
Popov
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: Sa 15.03.03 14:21
Es sind schlicht und einfach Integer-Variablen die du zur Verfügung hast. Mehr (oder weniger) nicht. Also kannst du pro Komponente jeder Komponente einen Integer-Wert zuweisen. Diese Variablen werden von der Komponente nicht verarbeitet.
_________________ Popov
|
|
Alibi
      
Beiträge: 458
Win2K SP3
Delphi 6 Ent
|
Verfasst: Sa 15.03.03 14:26
Hi,
ich würde das mit einem simplen Pythagoras machen:
Die schwarzen Flecken stellen die Objekte dar.
Du hast ja deren X/Y Koordinaten (Left und Top).
Den X-Abschnitt bekommst du so:
XObjektRechts-XObjektLinks
Analog dazu Y:
YObjektOben-YObjektUnten
Dann einfach:
Abstand = Wurzel(X^2+Y^2)
Oder über einfache Vektorrechnung. Den Vektor zwischen den Objekten nehmen und da dann den Betrag:
Abstand = Wurzel ( (x1-x2)^2 + (y1-y2)^2)
|
|
torstenheinze 
      
Beiträge: 461
|
Verfasst: Sa 15.03.03 15:13
vielendank für die antworten.
|
|
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Sa 15.03.03 18:10
Warum den schwer wenn es auch einfach geht
Also ich würde das problem wiegesagt mit Tags lösen, damit es das viel EINFACHER....
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Alibi
      
Beiträge: 458
Win2K SP3
Delphi 6 Ent
|
Verfasst: Sa 15.03.03 18:19
Und wie willst du das dann anstellen mit den Tags?
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Sa 15.03.03 19:11
tags sind dazu absolut nicht zu gerbauchen! Es geht hier um Koordinaten, das sind immer 2.
Der weg von Alibi ist genau der richtige. Aber ich würde nicht mit Top/Left arbeiten, weil das ja nur die obere und linke Position ist, sondern mit Top+(Height/2) und Left+(Width/2), denn das ist der Mittelpunkt der Objekte. Damit beziehst du die Größe auch noch mit ein.
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
torstenheinze 
      
Beiträge: 461
|
Verfasst: Sa 15.03.03 20:04
das wusste ich auch schon vorher
|
|
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Sa 15.03.03 21:32
er wollte doch herrausfinden welche panel bei welcher Image liegt oder nicht
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Alibi
      
Beiträge: 458
Win2K SP3
Delphi 6 Ent
|
Verfasst: Sa 15.03.03 21:41
Nein, das Problem ist folgendes:
Mehrere Objekte auf dem Formular. Er will nun herausfinden, zu welchem die Distanz im geringsten ist.
Was da Tags mit zu tun haben weiß der Himmel.
|
|
Popov
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: Sa 15.03.03 22:16
Die Tags haben keine Bedutung. Sie sind nur dazu gedacht gewesen, daß man dort den Abstand der notiert. Mehr nicht. Man könnte auch ein Array nehmen, dann müßte man aber auch notieren zu welchem Panel der Wert gehört. Man könnte natürlich auch mit nur einem Integer arbeiten und immer nur dem Notieren dessen Abstand der kleinste ist. Das mit den Tags war nur eine Idee.
_________________ Popov
|
|