Objekt auf einem anderen Objekt



  • Ah, dann habe ich deinen Eingangspost wohl etwas missinterpretiert.
    Offensichtlich haengt es bei dir schon bei den Grundlagen durch. Ich schlage vor du liest dir erstmal ein OpenGl-Tutorial durch, etwa http://www.codeworx.org/opengl_tuts.php .
    Damit sollte klar werden, wie das Keyboard und die Tasten, welche ja (zumindest vereinfacht) nichts weiter als Quadrate/Quader sind, gezeichnet werden koennen.

    Du kannst die Objekte in OpenGl dabei relativ problemlos uebereinander zeichnen, du musst nur auf die korrekt Reihenfolge achten (tiefere Objekte zuerst, naeher zum Bildschirm hin danach).

    Gruss,
    DeSoVoDaMu



  • ALso ich habe mir schon die Tutorials angeguckt und es ist auch kein Problem die Objekte zu zeichnen auch mit den Ebenen, Texturen anzeigen, Maus etc. etc.. Nur mein Problem ist das ich zwar die Objekte zeichnen kann aber kein Schimmer habe wie ich das hinbekomme das die Tasten nur in dem Objekt Tastatur bleiben und dieses Objekt nicht verlassen können also über die Ränder hinaus.



  • Breite und Länge der Tasten addieren, eventuelle Zeichenabstände mit einberechnen, schauen ob sie über die Bildschirmtastatur herausgehen und gegebenenfalls einen Umbruch einfügen oder die Tastatur vergrößern? Oo



  • Hey erstmal nochmal danke für die postings also ich habe mich nochmal rangesetzt und kapiert wie ich das machen muss. ich hatte total falsche denkansätze aber nun funzt alles.

    Öhm aber ich hätte noch eine andere frage. ist es möglich einem objekt ein raste zu weisen kann? also ich erstelle ein object quader und dieser quader ist unterteilt in z.b 10 weitere. diese lassen sich dann mit irgendwelchen anderen objekten füllen. also es gibt wohl eine möglichkeit wie man das machen kann. das ist auch eine nette art eine tastatur zu zeichnen.



  • Lenni schrieb:

    Hey erstmal nochmal danke für die postings also ich habe mich nochmal rangesetzt und kapiert wie ich das machen muss. ich hatte total falsche denkansätze aber nun funzt alles.

    Öhm aber ich hätte noch eine andere frage. ist es möglich einem objekt ein raste zu weisen kann? also ich erstelle ein object quader und dieser quader ist unterteilt in z.b 10 weitere. diese lassen sich dann mit irgendwelchen anderen objekten füllen. also es gibt wohl eine möglichkeit wie man das machen kann. das ist auch eine nette art eine tastatur zu zeichnen.

    Ich denke du meinst "Taste".

    Eigentlich jede Grafik-Api sollte Tastendrücke mit x, y-Koordinaten auslesen können, oder es sollte in einer Erweiterung enthalten sein.

    Mit den x und y Koordinaten kannst du dann ja schauen, ob der Klick innerhalb einer bestimmten Taste deiner Tastatur liegt.
    So würde ich es machen^^



  • nee das meine ich nicht.. kla also sobald ich die tasten auf das keyboard gezeichnet habe, kann ich einfach abfragen welche es denn ist.

    Ich meinte mit meiner letzten Frage ob es möglich ist ein Objekt zu zeichnen (Tastatur). Auf dieser Tastatur ein unsichtbares Raster zu erstellen und in jedem von diesen einzelnen Rasterblöcken zum Beispiel ein neues Objekt zu zeichnen. Das sollte irgendwie möglich sein. Ich hoffe meine Frage ist verständlich



  • Also irgendwie ist das ganze ein einziges Raetselraten...
    Du willst ein (unsichtbares) Raster? Genau das brauchst du doch schon, um die Tasten zu zeichnen (ich dachte das geht mittlerweile?).
    Erstell eine for-Schleife (oder zwei..) mit konstanter Schrittweite und zeichne die Objekte in Abhaengigkeit von der (/den) Laufvariable(n).

    for (int x = 0; x < keyboard.Width(); ++x)
    {
      for (int y = 0; y < keyboard.Height(); ++y)
      {
        // Render den Objekt an x, y (ggf. nur als relative Koordinaten betrachten)
        key.Render(x, y);
      }
    }
    

    Entweder du drueckst dich sehr unklar aus (zumindest fuer mich) oder dir fehlen entscheidene Grundlagen, die man zum Lösen eines Problems benoetigt 😉

    Edit: Am besten du postest mal etwas Code von der Stelle wo es haengt.

    Gruss,
    DeSoVoDaMu



  • Also nochmal zur besseren Verständnis^^

    Ich will eine Bildschirmtastatur für einen Multotouchscreen erstellen!

    Da war mir zuerst unklar, wir ich eine Tastatur zeiche und auf diesem Objekt die einzelnen Tasten anordne, sodass sie auch beim verschieben der Tastatur in ihrer Position bleiben. Wie mir selber kla geworden ist waren meine Denkansätze falsch. Ich kann einfach ein Objekt zeichnen und durch eine Schleiße die einzelnen Tasten mit Hilfe der x,y,w und h Werte der Tastatur zeichnen. Das ist alles kein Thema.

    Jetzt zu dem zweiten was ich meine.

    Es soll eine möglichkeit geben durch einen spezielen Konstruktor ein Raster auf ein Objekt zu zeichnen. In den einzelnen Rasterblöcken lassen sich dann zum Beispiel weitere Objekte zeichnen oder z.B gleich Texturen laden. Das war meine Frage ob jemand weiß ich so ein Raster erstellen kann? Ich kann das auch nicht näher beschreiben, da ich das nur von einem bekannten kenne, der das so gemacht hat. Nur leider habe ich immo kein Kontakt mit dem.

    Es war halt nur eine Idee und es hätte mich mal interesiert wie das funktioniert.

    mfg Lenni



  • Vielleicht handelt es sich um irgendein OpenGl-Feature, das ich nicht kenne.
    Aber Fakt ist, du kannst in OpenGl an jede beliebige Stelle Sachen rendern lassen - Raster hin, Raster her. Wenn du ein Raster moechtest dann zeichnen dir eins mit oben gezeigten Code und GL_LINE (zuvor sollte es ja noch unsichtbar sein...).

    Ansonsten kannst du mit Matrizen arbeiten (in dem Fall der Worldmatrix - kam mir jetzt nur der Gedanke, weil du in irgendeinem Post was von PushMatrix geschrieben hast). Es aendert sich aber rein garnichts an dem eigentlichen Sachverhalt: du hast bestimmte Abstaende in denen du deine Objekte zeichnest, ob du nun die Worldmatrix (das Koordinatensystem) verschiebst, oder einfach die Koordinaten, an denen deine Objekte gerendert werden, veraenderst, das Ergebnis bleibt das gleiche.
    Hier ist z.B. ein Tutorial zum Umgang mit den Matrizen in OpenGl: http://wiki.delphigl.com/index.php/Tutorial_Lektion_3

    Gruss,
    DeSoVoDaMu



  • Wenn Du ein Raster brauchst, dann mach eines.

    OpenGL bietet Dir ja viele möglichkeiten eines darzustellen.

    Um zu begreifen wie Du das genau programmierst um die gewünschte Funktionalität zu erhalten, solltest Du dir vielleicht als erstes ein gutes Buch über C/C++ kaufen, lesen und durcharbeiten.


Anmelden zum Antworten