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:
k := 1;
For i := 1 To 10 Do
Quad(0,0,k);
Mit der zweiten Achse habe ich allerdings Schwierigkeiten.
Code:
k := 1;
For i := 1 To 10 Do
Quad(0,0,k);
For j := 1 To 10 Do
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!
Registriert: Fr Mai 14, 2004 18:56 Beiträge: 804 Wohnort: GER/OBB/TÖL-WOR/Greiling
du brauchst eine zweidimensionale schleife.
also:
Code:
procedure quadquad(number_of_quads:integer);
var i,k:integer;
begin
for i:=0to number_of_quads -1do
for{i muss natürlich k sein} k:=0to number_of_quads -1do
quad(i,k,0);
end;
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.
_________________
"User Error. Replace User and hit Continue."
Zuletzt geändert von luketheduke am So Feb 06, 2005 11:40, insgesamt 1-mal geändert.
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:
procedure quadquad(number_of_quads:integer);
var i,j,k:integer;
begin
for i:=0to number_of_quads -1do
for j:=0to number_of_quads -1do// j einfügen
quad(i,j,0);// K = ?
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
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
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.