Animation erstellen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Animation erstellen

Beitrag von Johannes »

Hallo Forum,

für mein kleines Projekt "Heusingersteuerung am Modell" (Dampfmodellbau) möchte ich eine Animation erstellen.
Diese sollte ungefähr so http://www.keller-clz.de/java/heus/heus_how-d.html aussehen.
Jetzt überlege ich welche Strategie ich wählen sollte. Vielleicht kann mir ja jemand auf die Sprünge helfen.
Ich möchte keine Lösung sondern die Richtung wissen in der ich mich bewegen sollte.
Ein wenig "gespielt" habe ich schon mit den Möglichkeiten zum Zeichnen. Die Komponenten sollen, nach errechneten oder eingegebenen
Daten, ihre Größe und Position in der Animation ändern. Angaben dazu in Variablen unterzubringen sollte ich selbst beherrschen.
Schlussendlich soll das auch noch flüssig laufen und dabei gut aussehen... :wink: .
Ich möchte, als Anfänger, vermeiden einen falschen Weg zur Lösung einzuschlagen.

Mit freundlichen Grüßen

Hannes
Zuletzt geändert von Johannes am Sa 23. Jan 2016, 19:09, insgesamt 1-mal geändert.

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Animation erstellen

Beitrag von Mathias »

Der einfachste Weg wird sein, zuerst die Animation nur mit Linien und Kreisen zu zeichnen.
Wen diese primitive Variante mal läuft, dann kannst hinter die grafischen Verbesserungen gehen.

Man könnte es bis zur einer 3D-Animation in OpenGL ausbauen.

Schlussendlich soll das auch noch flüssig laufen und dabei gut aussehen...

Das sollte auf den heutigen PCs kein Problem darstellen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: Animation erstellen

Beitrag von Johannes »

Hallo Mathias,

das war auch mein Gedanke. Ich werde mal, bescheiden, damit anfangen.
3d muss wirklich nicht und mit Open Gl kenne ich mich(noch) nicht aus.

Danke!

Hannes

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Animation erstellen

Beitrag von Christian »

Eventuell wird 3D aber das einfachste.
In GLScene kannst du die deine Maschiene quasi mit Komponenten zusammenbauen.
Es gibt da auch 2 Physikengines mit denen du das ganze sogar Physikalisch realistisch darstellen könntest.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: Animation erstellen

Beitrag von Johannes »

Hallo Christian,

das hört sich sehr interessant an!
Gibt es zu diesem Thema Unterstützung in Form von Tutorials? Ich brauche sicher praktische Beispiele um das zu verstehen.
Bin Bj.54 und da läßt leider, wenigstens bei mir, die Lernfähigkeit doch etwas nach.

Danke!

Hannes

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Animation erstellen

Beitrag von Komoluna »

Das hier ist zwar für Delphi gemacht, ist aber fast zu 100% in FPC anwendbar:
https://wiki.delphigl.com/index.php/Tutorial_Quickstart

Diese Tutorials sind ziemlich gut gemacht, und haben mir den Einstieg in OpenGl sehr leicht gemacht.

MFG

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Animation erstellen

Beitrag von Mathias »

Das Tutorial ist gut, nur würde ich das DC und RC Zeugs durch das Hauseigene TOpenGLControl von Lazarus ersetzen.
Somit ist man nicht an Windows gebunden.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: Animation erstellen

Beitrag von Johannes »

Hallo Komoluna,

vielen Dank! Das liest sich gut und hat mein Interesse geweckt.

@Mathias: wo finde ich diese Komponente (TOpenGLControl) und warum empfielst Du mir diese ?

MfG

Hannes

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Animation erstellen

Beitrag von Komoluna »

Die Komponente wird mit Lazarus mitgeliefert. Ist nur noch nicht installiert.

Gehe auf "Packages -> Installierte Packages einrichten" und such in der rechten Liste nach "LazOpenGlContext".
Dann auf "Auswahl Installieren" und "Speichern und IDE rekompilieren". Dann startet Lazarus neu und du solltest ein neues Tab "OpenGl" in der Komponentenleiste haben.

MFG

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: Animation erstellen

Beitrag von Johannes »

Hallo Komoluna,

das war ja rekordverdächtig! So eine schnelle Antwort hatte ich nicht erwartet.
Danke, es läuft.

MfG

Hannes

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Animation erstellen

Beitrag von theo »

Bei Werkzeuge -> Beispielprojekte... Projekte Filter: "openglcontrol" gibt es eine Demo.

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Animation erstellen

Beitrag von Mathias »

Ich kenne die Demo auch, ist aber recht kompliziert für den Einstieg.

Ich habe da ein Muster welches ein einfaches Dreieck zeichnet.
Hier noch den Link zu dem Header: https://github.com/saschawillems/dglopengl

Code: Alles auswählen

unit unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  OpenGLContext, dglOpenGL;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    OpenGLControl1: TOpenGLControl;
    procedure FormCreate(Sender: TObject);
    procedure OpenGLControl1Paint(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{ TForm1 }
 
procedure TForm1.OpenGLControl1Paint(Sender: TObject);
begin
  glClearColor(0.8, 0.5, 0.3, 1.0);
  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  glEnable(GL_DEPTH_TEST);
 
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
 
  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity();
 
  glBegin(GL_TRIANGLES);
  glColor3f(1, 0, 0);
  glVertex3f(0, 1, 0);
  glColor3f(0, 1, 0);
  glVertex3f(-1, 0, 0);
  glColor3f(0, 0, 1);
  glVertex3f(1, 0, 0);
  glEnd();
 
  OpenGLControl1.SwapBuffers;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  InitOpenGL;
  OpenGLControl1.MakeCurrent;
  ReadExtensions;
  ReadImplementationProperties;
end;
 
initialization
 
  {$I unit1.lrs}
 
end
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Animation erstellen

Beitrag von Warf »

Unter Windows gibt es auch die 2D Engine Andorra2D, die ist zwar etwas älter tut aber einen wunderbaren Job

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Animation erstellen

Beitrag von m.fuchs »

Warf hat geschrieben:Unter Windows gibt es auch die 2D Engine Andorra2D

Nicht nur unter Windows.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Animation erstellen

Beitrag von Christian »

Ernsthaft ? Direktes Opengl für nen Einsteiger ?
In GLScene müsste ers nur RAD mässig zusammenklicken.
Warum eigentlich Lazarus und nicht gleich Assembler ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten