Hallo miteinander. Ich habe eine kleine Frage, die ich bis jetzt nur ungenügend beantworten konnte. Ich beziehe mich hier auf: Beitrag "Spielereien auf dem LCD" Beitrag "OpenGL für AVR (Grundlegende Idee umgesetzt)" Solche Rotationen mit einfachen Figuren wie eine Quadrat, Rechteck oder Dreieck sollten doch relativ einfach zu lösen sein, wenn man das Grundobjekt mit punkten definiert hat? Angenommen ein LCD hat man in ein schönes Raster unterteilt: Wenn ich jetzt da ein Quadrat irgendwo in das Raster setze, und jede Seite besteht aus 5 Punkten (also keine Linien), wie kann ich es jetzt an diesem Ort rotieren, lassen? oder um den Mittelpunkt des Koordinatensystems? Anwendungsbeispiel: Man hat einen Auftrag bei dem eine SPS realisiert werden sollte. Dabei wünscht sich der Kunde, dass auf einem LCD sämmtliche Zustände der Anlage angezeigt werden können. Dazu sollte jetzt aber im Kopfbereich der Name der Maschine dauerhaft stehen und rechts davon spielerisch das Firmenlogo sich schöne rotierend befinden (auf allen Achsen, wenn möglich) Und das ganze etwas MCU würdig? also nich Mit Float oder dergleichen. Besten Dank für die Antworten MFG Patrick
Ich würde an dieser Stelle abwägen, ob es nicht sinnvoller ist, die Grafik auf dem PC rendern/rotieren zu lassen und auf dem Display nur noch ein Filmchen davon abspielen zu lassen. Wozu ein Problem mit Rechenpower erschlagen, wenn man genug Speicher dafür hat? ;) Der Knackpunkt ist: du musst alle Punkte in der Grafik rotieren lassen, das kostet massiv Rechenpower. Sinn würde die dynamische Berechnung meines Erachtens nur machen, wenn sich am 3D-Objekt zusätzlich etwas ändert - wenn du also ein Gerät in 3D mit Animationen oder verschiedenen Stati anzeigen willst: in der CPU rendern. Ansonsten: Prerendering. HTH
Patrick B. schrieb: > Solche Rotationen mit einfachen Figuren wie eine Quadrat, Rechteck oder > Dreieck sollten doch relativ einfach zu lösen sein, wenn man das > Grundobjekt mit punkten definiert hat? Das Objekt wird gedreht, in dem man die Endpunkte der verbindenden Kanten dreht. > Angenommen ein LCD hat man in ein schönes Raster unterteilt: Wenn ich > jetzt da ein Quadrat irgendwo in das Raster setze, und jede Seite > besteht aus 5 Punkten (also keine Linien), wie kann ich es jetzt an > diesem Ort rotieren, lassen? oder um den Mittelpunkt des > Koordinatensystems? Nope. Die 5 Zwischenpunkte an der Linie interessieren dich nicht. Das Quadrat hat 4 Eckpunkte. Diese 4 Eckpunkte werden gedreht und danach wieder mittels Linien miteinander verbunden. > Anwendungsbeispiel: > Man hat einen Auftrag bei dem eine SPS realisiert werden sollte. Dabei > wünscht sich der Kunde, dass auf einem LCD sämmtliche Zustände der > Anlage angezeigt werden können. Dazu sollte jetzt aber im Kopfbereich > der Name der Maschine dauerhaft stehen und rechts davon spielerisch das > Firmenlogo sich schöne rotierend befinden (auf allen Achsen, wenn > möglich) Dann musst du vom 2D in den 3D Bereich gehen. Ab dann ist es mit einfach Formeln vorbei. Entweder Quaternions oder aber über Transformationsmatrizen. > Und das ganze etwas MCU würdig? also nich Mit Float oder dergleichen. Ist machbar mittels Fixpunktarithmetik. Zumal es bei einem sich drehenden Logo relativ egal ist, ob ein Endpunkt mal ein Pixel daneben ist oder nicht. Allerdings ist die Transformation einer Bitmap im 3D (und daraum handelt es sich bei den meisten Logos, weil sie geometrisch sonst einfach zu kompliziert sind) schon nicht mehr trivial machbar. Aber es ist machbar :-) Meistens greift man dazu aber zu vorgefertigten 'Filmchen', die einfach abgespielt werden, eben weil es den Aufwand nicht lohnt.
Chris R. schrieb: > Wozu ein Problem mit Rechenpower erschlagen, wenn man genug Speicher > dafür hat? ;) Deswegen auch meine Aussage, ob dies MCU würdig sei. Speicher ist normalerweise im Überfluss vorhanden... aber Funktionen, die die Loopzeit des Programms erheblich vergrössern sind meistens nicht brauchbar. Karl heinz Buchegger schrieb: > Nope. Die 5 Zwischenpunkte an der Linie interessieren dich nicht. > Das Quadrat hat 4 Eckpunkte. > Diese 4 Eckpunkte werden gedreht und danach wieder mittels Linien > miteinander verbunden. OK, ->Vektorgrafik Karl heinz Buchegger schrieb: > Meistens greift man dazu aber zu vorgefertigten 'Filmchen', die > einfach abgespielt werden, eben weil es den Aufwand nicht lohnt. OK, wo und wie könnte man solche Filmchen für ein LCD erstellen? Gibts da schon Programme? Besten Dank für die Hilfe MFG Patrick
Patrick B. schrieb: > OK, wo und wie könnte man solche Filmchen für ein LCD erstellen? Gibts > da schon Programme? Dass ist so ähnlich wie bei den animierten Gif's Zerlege das Ganze in mehrere Einzelbilder und zeige in rascher Abfolge die einzelnen Bilder. Normalerweise reichen ca. 10 bis 20 Einzelbilder. Fertige Programme kann ich dir jetzt nicht nennen, weil ich die Einzelbilder bis jetzt immer per Hand gezeichnet habe.
Hannes schrieb: > Fertige Programme kann ich dir jetzt nicht nennen, weil ich die > Einzelbilder bis jetzt immer per Hand gezeichnet habe. Hab jetzt auch keines im Kopf. Wenn ich sowas brauchen würde, schreib ich mir schnell ein Pgm auf dem PC. Kommt wohl auch aufs Logo an. Wenn das graphisch aufwändig ist, wirds wohl auf Bitmap mapping auf eine Fläche rauslaufen. POV-Ray ist zwar overkill, wäre aber eine Möglichkeit.
Patrick B. schrieb: > OK, wo und wie könnte man solche Filmchen für ein LCD erstellen? Gibts > da schon Programme? Es gab da mal Ulead Cool 3D, mit dem man IIRC auch Texturen auf Objekte legen konnte und das Zeug dann als animiertes GIF exportieren konnte. War allerdings zu den Zeiten, als animierte GIFs auf Homepages noch als Qualitätssiegel galten ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.