![]() |
glscene für graphikdarstellung von analytischer geometrie??
Hallo
wie kann ich glscene für graphikdarstellung von analytischer geometrie nutzen??? mein projekt verwendet mehrere fenster, ich weis noch nichts über glscene. gruß robert |
Re: glscene für graphikdarstellung von analytischer geometri
Zitat:
Wie du analytische Geometrie darstellen kannst!? In dem du sie zeichnen (rendern) lässt... es gibt etliche Objekte is GLScene, diverse möglichkeiten zu zeichnen etc.pp. Die Frage ist zu allgemein um sie sinnvoll beantworten zu können. Wenn du konkrete Fragen hast, dann können wir weiter reden :mrgreen: gruss, dizzy |
Re: glscene für graphikdarstellung von analytischer geometri
Hallo dizzy ich hab da mal ne konkrete frage:
Code:
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OpenGL12; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); ****procedure*InitGL;* ****procedure*DrawScene; ****procedure*ApplicationEvents1Idle(Sender:*TObject;*var*Done:*Boolean); private { Private-Deklarationen } public { Public-Deklarationen } end; procedure*SetDCPixelFormat(Handle:*HDC); var Form1: TForm1; aDC:hDC; **hRC:HGLRC; implementation {$R *.dfm} procedure*SetDCPixelFormat(Handle:*HDC); **var ****nPixelFormat:*GLUint; **const ****pfd:*PIXELFORMATDESCRIPTOR*=*( ********nSize:*sizeof(*PIXELFORMATDESCRIPTOR*); ********nVersion:*1; ********dwFlags:*PFD_DRAW_TO_WINDOW ********or*PFD_SUPPORT_OPENGL ********or*PFD_DOUBLEBUFFER; ********iPixelType:*PFD_TYPE_RGBA; ********cColorBits:*16; ********cRedBits:*0; ********cRedShift:*0; ********cGreenBits:*0; ********cBlueBits:*0; ********cBlueShift:*0; ********cAlphaBits:*0; ********cAlphaShift:*0; ********cAccumBits:*0; ********cAccumRedBits:*0; ********cAccumGreenBits:*0; ********cAccumBlueBits:*0; ********cAccumAlphaBits:*0; ********cDepthBits:*16; ********cStencilBits:*0; ********cAuxBuffers:*0; ********iLayerType:*PFD_MAIN_PLANE; ********bReserved:*0; ********dwLayerMask:*0; ********dwVisibleMask:*0; ********dwDamageMask:*0 ****); **begin ****nPixelFormat:=ChoosePixelFormat(aDC,*@pfd); ****SetPixelFormat(aDC,nPixelFormat,@pfd); **end; procedure*TForm1.InitGL; begin **glClearColor(0,0,0,0); **glClearDepth(1); **glDepthFunc(GL_LESS); **glShadeModel(GL_SMOOTH); **glEnable(GL_DEPTH_TEST); **glViewport(0,0,Width,Height); **glMatrixMode(GL_PROJECTION); **glLoadIdentity; **gluPerspective(45,Width/Height,1,100); **glMatrixMode(GL_MODELVIEW); end; procedure*TForm1.DrawScene; begin **glClear(GL_COLOR_BUFFER_BIT*or*GL_DEPTH_BUFFER_BIT); **glLoadIdentity; **//Hier wird später die Scene gezeichnet. **SwapBuffers(aDC); end; procedure*TForm1.ApplicationEvents1Idle(Sender:*TObject; **var*Done:*Boolean); begin **DrawScene; **Done:=False; end; procedure TForm1.FormCreate(Sender: TObject); begin InitOpenGL; **aDC:=GetDC(Handle); **SetDCPixelFormat(aDC); **hRC:=wglCreateContext(aDC); **wglMakeCurrent(aDC,hRC); end; end. Da kommt bei mir folgender Fehler END erwartet, aber ungültiges Zeichen #160 gefunden. und dann noch ein paar compilerfehler den Code habe ich mir auf der Basis eines Tutorials aufgebaut Danke schon mal ROB |
Re: glscene für graphikdarstellung von analytischer geometri
Hm, #160 ist ein "á", und #0160 ein Leerzeichen. Letzteres ist aber Unicode, uns dürfte in nem Delphi-Quelltext nicht zu finden sein. ein "á" finde ich aber auch nicht... Eventuell sind nach dem Kopieren ein paar Fehler reingekommen!?
Das "á" ist aber unter Umständen auch in den Sourcen von GLScene zu finden, da dies von einem Franzosen stammt, und dort manche (wenige) Kommentare in Französisch sind. Evtl. fehlt ja irgendwo das // o.ä., so dass das Zeichen scheinbar zur Quelle gehört. Allerdings hatte ich dieses Problem an keiner Stelle. Einen Großteil der Compilermeldungen kann man bestimmt auf den ersten Fehler zurückführen. Du musst aber auch genau darauf achten, dass du alle nötigen Units einbindest. U.U. weiss man erst was "benötigt" ist, wenn man den Source nach einem benötigten Datentyp von Hand durchsucht. TVector3f und andere sind z.B. in "VectorTypes.pas". Klingt einleuchtend, steht aber nirgend wo geschrieben... Auch musst du darauf achten alle Unterverzeichnisse von "($GLScene)\source\* " in den Bibliothekspfad zu übernehmen. es reicht scheinbar nicht nur "($GLScene)\source" zu nehmen. Hoffe ich konnte etwas helfen. gruss, dizzy \\edit: hmmm... die Tutorials kenne ich :mrgreen:. Mein erster Code sah sehr ähnlich aus. AHHH HALT!!! Du initialisiesrt ja von Hand!? Was dein Quellcode darstellt sind die ersten Schritte zu Pure-OpenGL! Bei GLScene ist das alles nicht nötig! Da reicht es eben ein TGLScene-Objekt auf's Formular zu klatschen, und *bubbs* alles initialisiert! |
Re: glscene für graphikdarstellung von analytischer geometri
Dazu sei noch gesagt:
GLScene <> OpenGL !!! GLScene kapselt OpenGL-Klamotten, um es dir einfacher zu machen. Wenn du pures OpenGL machen möchtest, dann mach mit dem weiter, was du schon hast. Aber sei gewappnet: Du musst jedes einzelne Face Punkt für Punkt ganz von Hand setzten! OpenGL kennt keine Primitives wie Würfel oder Kugeln. Das müsstest du dir komplett selber bauen! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz