Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi OpenGL Koordinaten finden? (https://www.delphipraxis.net/23595-opengl-koordinaten-finden.html)

Master_BB 5. Jun 2004 21:56


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

StefanDP 5. Jun 2004 22:19

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?

Master_BB 5. Jun 2004 22:30

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.

atreju2oo0 5. Jun 2004 22:50

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:

Master_BB 5. Jun 2004 23:27

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.

dizzy 6. Jun 2004 01:05

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

StefanDP 6. Jun 2004 01:23

Re: OpenGL Koordinaten finden?
 
Einen Würfel könntest du z.b. aus mehreren quads machen...:

Delphi-Quellcode:
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;
jetzt kannst du um die aktuelle welt-matrix einen würfel mit dem "radius" (klinkt jetzt dumm) 5 machen:
Delphi-Quellcode:
// Macht ein Würfel mit dem "Radius" --> halbe Seitenlänge = 5
glWuerfel(5);
nach diesem prinzip dürftest du auch einfache "pyramiden" - funktionen schreiben können

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