Registriert: Di Feb 28, 2006 17:36 Beiträge: 1 Wohnort: Lage
Hey,
ich habe mit Delphi ein Programm geschrieben, dass meinem Mathekurs helfen soll, das Thema Vektoren zu verstehen, bzw es räumlich sichtbar zu machen
Rechnen kann man damit schon ganz gut, nur ich wollte es grafisch darstellen.
Ich habe schon die Tuts hier gelesen, nur komme damit nicht so wirklich klar und wollte fragen, ob es eine möglichkeit gibt,
das man einfach Koordinaten an einen Zeichenbereich (OpenGL in einem Panel) und sagt, so, nen Punkt bitte bei P1(X,Y,Z) zeichnen oder ne Strecke AB für A(x,y,z) und b (x,y,z), ohne dabei hintergründe wie rendern, tiefen, headern... zu verinnerlichen??
Theoretisch gibt es genau so etwas afaik nicht. Es gibt aber Alternativen:
Man kann eine fertige Engine benutzen oder glScene. Das ist zwar nicht genau das Richtige dafür, aber es kommt dem Ziel doch bedeutend näher Allgemein wird aber empfohlen, sich nicht nur oberflächlich mit der Materie zu beschäftigen, sondern sich damit auseinanderzusetzen. So schwer ist OpenGL nun auch nicht
Das passendste hab' ich natürlich unterschlagen Es gibt sog. Templates für OpenGL. Diese enthalten bereits alles Nötige.
Einfach das aktuelle DGLSDK runterladen und installieren. Dort sind alle Header und Templates drin und man kann sofort loslegen
_________________ "Für kein Tier wird so viel gearbeitet wie für die Katz'."
Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
Nun, das rendern in einem Panel sollte entweder in unserem VCL-Template sein oder bei dem Template mit zwei RC2. Prinzipiell muss man nur das Handle des Panels übergeben um dieses als OpenGL-Zeichenfläche zu verwenden.
Was den zweiten Teil deiner Frage angeht. Sagen wir es mal so: Um OpenGL zu verwenden, muss man OpenGL lernen - da führt kein Weg dran vorbei. Letztendlich sollte man allerdings mit ein wenig Programmiererfahrung (und hilfreich natürlich Mathe-Erfahrung) einen Einstieg finden. Die Sache mit den Headern ist eigentlich eine Nebensache. Wenn Du die Templates von uns verwendest, hast Du sowieso bereits unseren Headern im Einsatz und solltest keine wirklichen Schwierigkeiten haben. Der Tiefenbuffer wird als Standard eigentlich überall aktiviert und dies sollte auch so beibehalten werden, außer man mächte mehre Sachen übereinander blenden etc.
Was also effektiv für Dich zum lernen übrig bleibt ist der Einsatz der WorldMatrix um die Szene so zu positionieren, wie der Beobachter dies tun soll und das Zeichnen von Linien. Schnapp Dir doch am besten einmal eines unseres Templates und setze dort folgenden Code ein unterhalb des glClear ein:
Code:
glLoadIdentity;
glTranslatef(0,0,-5);
glBegin(GL_LINES);
glColor3f(1,0,0);
glVertex3f(0,0,0);
glVertex3f(100,0,0);
glColor3f(0,1,0);
glVertex3f(0,0,0);
glVertex3f(0,100,0);
glEnd;
Und schon solltest Du zwei Linien sehen, die ausgehend vom Ursprung entlang der positiven X- und Y-Achse gehen. Das ganze sieht so natürlich recht langweilig aus und vielleicht möchte man noch ein wenig die Szene einen Tick von oben betrachten, damit das 3D besser zum Vorschein kommt. Aber prinzipiell ist das ganze nicht viel mehr zu lernen, solange Du nur mit Linien und Punkten arbeitest. Entsprechende Funktionen wie "Zeiche Strecke von (0,0,0) bis (1,2,2);" kannst Du Dir auf dieser Grundlage leicht selbst schreiben und damit auch die Materie evtl. für deine Kursteilnehmer ein wenig klarer gestalten. Solltest weder Du noch deine Teilnehmer ein Interesse an OpenGL und der Visualisierung von Sachverhalten damit haben, bietet sich evtl. ein reiner Plotter an. Da verweise ich allerdings einmal an unsere Mathe-Menschen im Forum, da ich diese bisher eigentlich ausnahmslos für 2D-Graphen verwendet habe.
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Also ich würde das mal so sehen:
- OpenGL ist genau das richtige um soetwas zu realisieren
- Ohne überhaupt Ahnung (bzw. Lust es zu lernen) von Programmieren zu haben solltest du es sofort wieder vergessen.
- Ohne überhaupt Ahnung von OpenGL zu haben kannst du es auch vergessen.
- Ohne ein OpenGL-Könner zu sein, kannst du es durchaus hingriegen.
Du solltest dir mal folgende Sachen angucken:
1. DGLSDK : Liefert dir alle Header falls du mit Delphi programmierst, ansonsten musst du dir passende OpenGL-Libs aus'm Netz besorgen.
2. Template: Liefert dir ein funktionierendes Grundgerüst im Zusammenspiel mit dem Header. (Ich weiß, dass Dephi-Programmierer bei uns bevorteilt werden. Und das soll auch so sein ). Alternativ ließt du dir das Tutorial quickstart durch.
3. Ließ die Tutorials Tutorial lektion1, lektion2, lektion3 und Tutorial Matrix2 durch. (Falls du beim rotieren und verschieben probleme hast, gleich mal einen Blick auf das letzte Tut werfen.)
Die restlichen Tutorials sind für dich dann das was du mit "ohne dabei hintergründe [...] zu verinnerlichen" meinst.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.