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

Aktuelle Zeit: Mi Jul 16, 2025 21:39

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



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Frage zur Positionierung im 3D Raum
BeitragVerfasst: Sa Feb 05, 2005 22:13 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Feb 02, 2005 14:22
Beiträge: 81
Hallo Forum,
ich habe mal wieder eine Frage. Ich habe mir eine Prozedur angelegt, in der ein simples Quad gezeichnet wird. Der Prozedur werden die X,Y,Z Koordinaten mit übergeben, bei denen das Quad gezeichnet werden soll. Das Quad ist jeweils eine Einheit breit und lang.
Dieses Quad möchte ich jetzt x mal nebeneinander legen, so das am Ende ein riesengroßes Quad entsteht.
Entlang einer Achse mache ich das so:

Code:
  1.   k := 1;
  2. For i := 1 To 10 Do
  3.   Quad(0,0,k);


Mit der zweiten Achse habe ich allerdings Schwierigkeiten.

Code:
  1.   k := 1;
  2. For i := 1 To 10 Do
  3.   Quad(0,0,k);
  4.   For j := 1 To 10 Do
  5.     Quad(k,0,0);


Wenn ich das render, entsteht ein "L".
Wie muss ich die Schleife ändern, damit ein Quadrat entsteht?
Brauche ich dafür die Befehle glPushMatrix bzw. glPopMatrix?

Wäre für jeden Tipp wie man so etwas realisieren kann dankbar!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 05, 2005 22:19 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
du brauchst eine zweidimensionale schleife.

also:
Code:
  1.  
  2. procedure quadquad(number_of_quads: integer);
  3. var i,k:integer;
  4. begin
  5. for i:= 0 to number_of_quads -1 do
  6.  for {i muss natürlich k sein} k:= 0 to number_of_quads -1 do
  7.   quad(i,k,0);
  8. end;
  9.  


das wars eingentlich schon.

folgendes passiert:

es werden number_of_quads quadrate untereinander geschrieben, dann ein x-koord weitergegangen und wieder number_of_quads quadrate untereinander geschrieben. und zwar number_of_quads oft.


EDIT: hab meinen code korrigiert.

_________________
Bild

"User Error. Replace User and hit Continue."


Zuletzt geändert von luketheduke am So Feb 06, 2005 11:40, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 05, 2005 22:43 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Feb 02, 2005 14:22
Beiträge: 81
MMhhhhh....leider nein.
Das funktioniert nicht.
(Kommt aber auch was lustiges bei raus :wink: )


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 06, 2005 09:49 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Das kann ja gar ned stimmen, da wird ja zweimal die gleiche Laufvariable verwendet.
Führ mal eine zweite ein, zB "j":
Code:
  1. procedure quadquad(number_of_quads: integer);
  2. var i,j,k:integer;
  3. begin
  4. for i:= 0 to number_of_quads -1 do
  5. for j:= 0 to number_of_quads -1 do // j einfügen
  6.   quad(i,j,0);                                  // K = ?
  7. end;
[/code]

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 06, 2005 11:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Feb 02, 2005 14:22
Beiträge: 81
Bei dem was luketheduke geschrieben hat, handelt es sich bestimmt nur um einen Tippfehler. Zweimal i gezählt habe ich auch nicht!
K ist der Wert, der an die Prozedur übergeben wird. Innerhalb der Prozedur verwende ich glTranslate. Das Quad soll halt bei jedem Durchlauf eine Einheit weiter auf der X-Achse verschoben werden, sodass am Ende viele nebeneinander liegen.

Aber lasst mal sein, ich habe das Problem anders gelöst!
Meine Frage hat sich also erledigt.
Trotzdem danke an alle die mir Tipps gegeben haben :!:


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: 0 Mitglieder und 13 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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 14 Queries | GZIP : On ]