Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 16, 2025 19:27

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Fr Dez 17, 2004 16:05 
Offline
DGL Member

Registriert: Fr Dez 17, 2004 15:29
Beiträge: 2
Wohnort: Rapperswil
Zuerst mal Hallo Zusammen! Eine Coole Site mit Forum und jede Menge Motivation für Delphi und OpenGL hab ich hier gefunden :D
Hab mich jetzt ein Bischen eingearbeitet und bin an meinem 1ten OpenGl-Programm dran. Nachdem ich es geschafft habe einen Kreis zu machen *juhu* musste ich leider feststellen das der wohl noch nicht ganz so korrekt ist, hier der Code:
********************************************************************************
begin
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); //Farb und Tiefenpuffer löschen
glLoadIdentity; // World Matrix zurücksetzen
gltranslate(0,0,-90);
glrotate(rotx,1,0,0); //drehung um die x-achse
glrotate(roty,0,1,0); //drehung um die y-achse
// glrotate(rotz,0,0,1); //drehung um die y-achse

r:= 20; //Radius definieren
i:=0; //Laufvariable
n:=r*8; //Auflösung des Kreises (n zu klein => Kreis hat Lücken)
x0:=0; //Kreismittelpunkverschiebung in x
y0:=0; //Kreismittelpunkverschiebung in y

glBegin(gl_line_loop);
while i < n do
begin
a:=2*PI*i/n;
x:=x0 + r * cos(a);
y:=y0 + r * sin(a);
glColor3f(0, 0, 1);
glVertex2f(x,y);
i:=i+1;
end;
glEnd();


SwapBuffers(form1.myDC);
end; //scene ausgeben
********************************************************************************
Wenn ich jetzt den Kreis darstelle, krieg ich ihn komplett gezeichnet.Wenn ich ihn nun mit glrotate drehe schneidet es mir ab 30° einen Teil vom Kreis Weg, egal ob um die x- oder y-Achse gedreht wird :evil:

kann mir jemand sagen ob ich nen Falschen Kreis zeichne oder was da fehlt ?? :roll:
anbei noch das prog

Danke für eure Hilfe


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 17, 2004 16:12 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 02, 2003 12:47
Beiträge: 300
Wohnort: Marburg
Vielleicht kommt bei der Drehung ein Teil des Kreises unter die Minimale sichtweite oder aus der Maximalen Sichtweite herraus?

Irgendwo muss der Befehl

Code:
  1.   gluPerspective(Sichtwinkel, Width/Height , Minimum Sivhtweite , Maximum Sichtweite );


stehen, da kannst du das einstellen.

Klapts?

_________________
Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 17, 2004 16:14 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 02, 2003 12:47
Beiträge: 300
Wohnort: Marburg
Bei deinem Programm siehts nach der Maximalen Sichtweite aus.

_________________
Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 17, 2004 17:17 
Offline
DGL Member

Registriert: Fr Dez 17, 2004 15:29
Beiträge: 2
Wohnort: Rapperswil
vielen dank!

mit gluPerspective(45.0, Width/Height, 1, 100);hat ja nicht geklappt :shock: , dafür reichte schon:

gluPerspective(45.0, Width/Height, 1, 110); :lol:

zFar war also zu wenig?
Kann mir jemand sagen was für Einheiten das denn sind? Ich hab ja nen Radius von 20, also D=40. Wie kann kann ich mir das Vorstellen?
Einfach zwei Flächen die dem Betrachter die Sicht einschränken/wegschneiden?
Also Z-Schnittfläche entspricht einer xy-Ebene?

hab ich mit gltranslate(0,0,-90); den Kreis um -90 in Z nach hinten verschoben, also der Mittelpunkt ist in (0,0,-90)?

Eigentlich möcht ich den Kreis sauber auf der XY-Ebene haben (Koordinaten des Mittelpunkts: x0,y0,0) da später noch mehr auf dieselbe Ebene kommt.

Mit welchen Befehlen soll ich das am besten machen? z.B. glScale?


Aus wiki.delphigl.com:
*******************************************************************************************************************
gluPerspective(fovy, aspect, zNear, zFar : glDouble);

fovy Gibt das Betrachtungsfeld (FOV) in Grad, entlang der Y-Achse, an.
aspect Gibt den Aspektratio, der das Betrachtungsfeld entlang der X-Achse setzt. Der Aspektratio ist das Verhältnis von Höhe zu Breite.
zNear Entfernung vom betrachter zur nahen Z-Schnittfläche (muss positiv sein).
zFar Entfernung vom betrachter zur fernen Z-Schnittfläche (muss positiv sein).


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 17, 2004 17:37 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 02, 2003 12:47
Beiträge: 300
Wohnort: Marburg
Die Ebenen zfar und znear sind halt paralel zu deiner "Kameralinse" (Habs nicht so mit fremdwörtern)

Mit den glrotate und gltranslate und glskale befehlen muss mann einfach ein bisschen rumprobieren ums zu verstehen...
kommt eben auf die reinfolge drauf an und darauf wie du sie verwenden willst :-)
Du rufst hallt die befehle auf, um dass Korordinatensystem von der Kamera weg zu schieben, zu drehen oder seine Größe zu ändern. (die kamera kannste vorher auch noch verscheiben musste aber nicht ist ja eigentlch eh das selbe)
Wenn du dann zeichnest, zeichnest du in dem verschobenen system.
Wenn du es dann woanders hin haben willst, rufst du einfach glLoadIdentity; auf und verschiebst wieder neu. Die bereits gezeichneten sachen bleiben dann wo sie sind. und die sachen, die du neu zeichest kommen an die neue Position.

Im Prinzip geht es einfacher, wenn mann damit einfach rumprobiert (meine Meinung).

_________________
Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 11 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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 15 Queries | GZIP : On ]