Autor Beitrag
Terra
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 307

Windows 7 Ultimate
Delphi® XE3
BeitragVerfasst: Do 01.12.05 12:42 
Hmm, wie fange ich an ?

Ok, ich möchte gerne in einem normalen Fenster eine flache Karte darstellen lassen die man hin und herschieben kann, wie man will. In diesem Fenster soll unten ein Feststehendes Bitmap dargestellt werden für verschiedene Funktionen. (Ich habe mal ein Bild gemalt um zu verdeutlichen wie ich das meine (siehe Anhang))

Mein Problem besteht darin, das ich nicht weis, wie ich es umsetzen soll, das wenn man mit der Maus über ein bestimmtes Gebiet fährt, dieses umrandet wird und auchausgewählt werden kann.

Wenn mir da jemand paar Links oder Codeschnipsel zuposten könnte, wo sowas schonmal behandelt wurde, wäre ich sehr dankbar. Hab schon viele Seiten durchstöbert aber nie das wahre gefunden.

Terra
Einloggen, um Attachments anzusehen!
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Do 01.12.05 13:13 
Das was du haben willst ist natürlich auch alles andere als Leicht.

Als erstes würde ich dir dieses Selection Tutorial empfehlen. Damit kannst du verschiedene Objekte abfragen. Wobei dabei das Problem besteht, dass diese Objekte wirkliche OpenGL Objekte sein müssen. Sprich du wirst nich einfach nur so ein Bild zeichnen können und dann da etwas auswählen können.

Eine andere Möglichkeit wäre noch in dem du dir eine Pseudografik machst in der die gebiete unterschiedlich eingefärbt sind und diese zeichnest und dann die Farbe an der Mausposition ausließt. Das geht wohl auch so, dass das im Hintergrund statt findet also nicht sichtbar ist. Habe ich aber ganz ehrlich noch nicht gemacht. Weiß also nicht ob es so geht wie ich es gerade beschrieben habe und wie es genau geht.

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
Terra Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 307

Windows 7 Ultimate
Delphi® XE3
BeitragVerfasst: Do 01.12.05 13:25 
Pseudografik? Die müssten doch dann teilweise transparent sein oder nicht? Weil wenn ich ein Gebiet zeichne das einmal umrandet ist und das dann auf die Stelle über der Karte lege wäre es ja ziemlich doof aussehen, wenn ich dann noch die Ränder sehe.

Ein weiteres Problem was sich mir in den Weg stellt ist unter anderem auch, das man die Karte bewegen kann und das dadurch auch die Positionen der Gebiete sich ändert.

Wirklich helfen würde mir evtl. ein Beispiel mit Bitmaps. Das Tutorial habe ich mir schon bestimmt 100x durchgelesen und bekomm so langsam das grübeln. Dort wurde ja die Grafik im Programm gezeichnet. Wie soll man das dann mit Bitmaps machen ?

Terra
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Do 01.12.05 13:37 
Ne. Ich meinte es eher so, dass du eine Grafik machst du nichts beinhölt außer für Gebiet 1 einen Farbwert für Gebiet 2 einen Wert usw. Sonst nichts weiter. Wenn du diese ohne Licht zeichnest dann siehst du genau wo welche Gebiete hin verzerrt wurden. Wenn du dann mittels glReadPixels das eine Pixel ausließt dann solltest du ziemlich genau wissen wo du dich befindest. Sonst mit der Selektion müsstets du halt dafür sorgen, dass Flächen in den entsprechenden Formen machst. Aber das dürfte in etwas ähnlich schwieirig werden.

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
Terra Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 307

Windows 7 Ultimate
Delphi® XE3
BeitragVerfasst: Do 01.12.05 13:51 
Ah, ich verstehe soweit. Nur möchte ich nicht die Farben auf der Map sehen sondern sollen sogesehen im Hintergrund vorhanden sein. Möglich oder nicht?

Desweiterem ist es ja sehr umständlich, das Gebiet mittels "openGL-Grafik" nachzuzeichnen. Gibt es da eine einfachere Variante ?

Terra
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Do 01.12.05 14:56 
Zitat:
Möglich oder nicht?

Nichts für ungut aber ich bin kein wandelndes Lexikon. Hatte oben schon mal geschrieben, dass ich das selber bisher noch nie gemacht habe und auch nicht genau weiß wie und ob das so möglich ist. Ich habe aber so etwas ähnliches aber schon ein paar mal irgendwo gelesen. Bzw wurde da anstelle der normalen Selektion ein Zeichnen der Flächen mit den Farben benutzt und die Farbe dann ausgelesen. Rein theoretisch sollte das auch mit Texturen gehen um dann herrausfinden zu können welcher Teil der Textur sich unter der Maus befindet. Aber da ist auch mein Problem. Ich weiß nicht genau wie man es hinbekommt den Backbuffer auszulesen. Mit glReadPixels kann man den Framebuffer auslesen. Aber nur der Teil der sichtbar ist.

Wobei ich nicht weiß. Berechnen könnte man das sicherlich auch irgendwie. Aber das ist genzlich nicht mein Gebiet.

Evtl solltest du deine Frage auch mal in einem OpenGL Forum stellen. Dort sind mehrere Unterwegs die das Wissen könnten.

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.