![]() |
OpenGL Koordinaten finden?
Heya,
ich lese gerade ein OpenGl tut. Und alles kann ich wunderbar mit den befehlen bloß ich hab ein gravierendes Problem. und zwar hab ich immer keinen schimmer wo der aus der anleitung die koordinaten hernimmt das da auch wirklcih ein viereck oder gar ein quadrat entsteht. ich weiß das es mit diesem 3dimensionalen koordinaten system wie in mathe läuft. aber daraus kann man auch nicht super erkennen ob manche sachen rechtwinklig sind oder nicht usw. woher soll ich also immer die punkte wissen damit ich eine pyramide oder so erstellen kann? ist mir echt ein rätzel. hab die punkte schon ins koordinaten system eingemalt ich kriegs nciht auf die reihe. die x achse ist ja um 1/2 verkürzt und so ne, wie halt in mathe. gibts dafür programme oder hab ich einfach mal nen übelsten denkfehler? Greetz Master_BB |
Re: OpenGL Koordinaten finden?
Wo liegt genau das problem?
verstehst du den opengl code nicht, oder kannst du dir das nur nicht räumlich vorstellen? |
Re: OpenGL Koordinaten finden?
ich versteh open gl ich find die koordinaten nicht.
wenn cih ein quadrat erstellen will wird keine keine ahnung was für ein verqueres viereck. die koordinaten haun nicht so hin das die linen rechtwinklig sind die zwischen den punkten gezogen werden. |
Re: OpenGL Koordinaten finden?
Poste mal deinen Quelltext in dem Du die Punkte setzt...
Die müssen eine bestimmte Reihenfolge haben, damit die Linien korrekt gezeichnet werden. Und als Testpunkte würde ich einfache Werte nehmen wie 0 und 1. Dann kommt noch hinzu das eventuell deine Kameraposition falsch ist und daraus schräge Linien resultieren. P.S.: 3D is :wall: |
Re: OpenGL Koordinaten finden?
hm die sache ist ich hab an sich keine punkte.
ich möchte von euch gern ein system wissen wir ihr wenn ihr 3d sachen progzt auf die punkte kommt? an sich würde ich P1(1/1/1) machen P2(-1/1/1) usw bis ich aml alle kombinationen aus + und - wechsel hab. aber da ist es nicht gewiss das was ordentlcihes rauskommt + wo steckt da die logic und methodic. es muß doch nen weg geben wie man sowas ordentlcih hinkriegt. machen wir nen beispiel. ich möchte gerne einen 3 dimensionalen Würfel. wie gehe ihc vor? wenn ich die punkte möchte. glbegin(gl_quads); glvertex3f(x,y,z); glend; das ist klar wie kriege ich die x,y,z koordinaten für die 8 punkte die einen würfel bilden? die ganze sachen rotieren und verschieben zu lassen ist kein ding alles billig ABER DIE VERDAMMTEN PUNKTE ich krieg ne hakke. |
Re: OpenGL Koordinaten finden?
Ist die Frage, mit welcher Startinformation du da dran gehst. Du könntest a) eine Ecke und die Kantenlänge gegeben haben, oder b) den Mittelpunkt und den Umkugelradius und und und...
Angenommen Fall a: Eine Ecke des Würfels sei Eluv=(0/0/0), und die Kantenlänge k=5 Ferner nehmen wir an, dass E die linke untere vordere Ecke sein soll. Also ergäben sich für die Punkte: Eluv=(0/0/0) Eruv=(5/0/0) Elov=(0/5/0) Erov=(5/5/0) Eluh=(0/0/-5) Eruh=(5/0/-5) Eloh=(0/5/-5) Eroh=(5/5/-5) (Eluh z.B. heisst "Ecke links unten hinten" ;)) Du musst dir überlegen wie du von einem Ausgangspunkt aus wandern musst, um zum nächsten Punkt zu kommen. Zur Prüfung auf Rechtwinkligkeit kann man das Skalarprodukt verwenden, um aus zwei bekannten Vektoren einen dritten zu erzeugen, der rechtwinklig auf den anderen beiden steht kann man das Kreuzprodukt nehmen (Google hilft hier weiter :)) Ein wirklich gutes räumliches Vorstellungsvermögen ist aber hierbei absolut notwending! Wenn dir DAS fehlt, dann musst du sehr viel über Zeichnungen und Ausprobieren machen. (Ich zeichne mir sowas IMMER auch erst auf.) Wichtig für die Herangehensweise ist eben auf grund welcher Ausgangsinformation eine Struktur zeichnen willst. Daraus ergeben sich dann die zu verwendenden Methoden. btw: 3D ist geil! Es ist halt nicht einfach... aber gerade DAS macht es ja interessant :zwinker: n8i, dizzy |
Re: OpenGL Koordinaten finden?
Einen Würfel könntest du z.b. aus mehreren quads machen...:
Delphi-Quellcode:
jetzt kannst du um die aktuelle welt-matrix einen würfel mit dem "radius" (klinkt jetzt dumm) 5 machen:
procedure glQuad(s: integer);
begin glBegin(GL_QUADS); glTexCoord2f(0,0); glVertex3f(-s,-s,s); glTexCoord2f(0,1); glVertex3f(-s,s,s); glTexCoord2f(1,1); glVertex3f(s,s,s); glTexCoord2f(1,0); glVertex3f(s,-s,s); glEnd(); end; procedure glWuerfel(s: integer); var x: Integer; begin glPushMatrix; // -->| for x := 1 to 4 do begin glQuad(s); // Alle vier Seiten glRotatef(90,0,1,0); end; glPopMatrix; // <--| glPushMatrix; // -->| glRotatef(-90,1,0,0); // "Deckel" glQuad(s); glPopMatrix; // <--| glPushMatrix; // -->| glRotatef(90,1,0,0); // Boden glQuad(s); glPopMatrix; // <--| end;
Delphi-Quellcode:
nach diesem prinzip dürftest du auch einfache "pyramiden" - funktionen schreiben können
// Macht ein Würfel mit dem "Radius" --> halbe Seitenlänge = 5
glWuerfel(5); stefan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:32 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