AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi OpenGL Koordinaten finden?
Thema durchsuchen
Ansicht
Themen-Optionen

OpenGL Koordinaten finden?

Ein Thema von Master_BB · begonnen am 5. Jun 2004 · letzter Beitrag vom 6. Jun 2004
Antwort Antwort
Master_BB

Registriert seit: 17. Mai 2003
285 Beiträge
 
Delphi 7 Professional
 
#1

OpenGL Koordinaten finden?

  Alt 5. Jun 2004, 21:56
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
  Mit Zitat antworten Zitat
StefanDP

Registriert seit: 11. Apr 2004
294 Beiträge
 
#2

Re: OpenGL Koordinaten finden?

  Alt 5. Jun 2004, 22:19
Wo liegt genau das problem?
verstehst du den opengl code nicht, oder kannst du dir das nur nicht räumlich vorstellen?
  Mit Zitat antworten Zitat
Master_BB

Registriert seit: 17. Mai 2003
285 Beiträge
 
Delphi 7 Professional
 
#3

Re: OpenGL Koordinaten finden?

  Alt 5. Jun 2004, 22:30
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.
  Mit Zitat antworten Zitat
Benutzerbild von atreju2oo0
atreju2oo0

Registriert seit: 5. Dez 2003
Ort: Berlin
289 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: OpenGL Koordinaten finden?

  Alt 5. Jun 2004, 22:50
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
Thomas
  Mit Zitat antworten Zitat
Master_BB

Registriert seit: 17. Mai 2003
285 Beiträge
 
Delphi 7 Professional
 
#5

Re: OpenGL Koordinaten finden?

  Alt 5. Jun 2004, 23:27
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.
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: OpenGL Koordinaten finden?

  Alt 6. Jun 2004, 01:05
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


n8i,
dizzy
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
StefanDP

Registriert seit: 11. Apr 2004
294 Beiträge
 
#7

Re: OpenGL Koordinaten finden?

  Alt 6. Jun 2004, 01:23
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz