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

Aktuelle Zeit: Di Jul 15, 2025 23:33

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



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: koordinaten korrekt einlesen
BeitragVerfasst: Sa Nov 01, 2003 13:45 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
bin ich nur schwer von begriff? *g*

was ich versuche:

ich versuche koordinaten einzulesen, und diese dann zu zusammenhängenden rechtecken
zu verbinden.

was ich einlese:

eine datei in der steht:

Code:
  1. 000 000 000    000 000 -05   cvl    000 000 -02

cvl steht für: curve left
cvr würde für curve right stehen.

un das ist der code zum auslesen:
Code:
  1.  
  2. procedure LeseDateiAus(datei: string);
  3. var
  4.    f: textfile;
  5. begin
  6.      assignfile(f, datei);
  7.      reset(f);
  8.      while not EoF(f) do
  9.      begin
  10.           readln(f, koords);
  11.      end;
  12.      while pos(' ', koords) <> 0 do
  13.      begin
  14.           Delete(koords, Pos(' ', koords), 1);
  15.      end;
  16. end;
  17.  


koords: string

in koords steht dann (hoffentlich XD): 000000000000000-05cvl000000-02

und so verarbeite ich das ganze:

Code:
  1.  
  2. procedure DrawObject;
  3. var
  4.    i : integer;
  5. begin
  6.      i := 1;
  7.     while i <= trunc(length(koords)) do
  8.     begin
  9.          if koords[i] <> '' then
  10.          begin
  11.  
  12.  
  13.               if koords[i] = 'c' then
  14.               begin
  15.                    if koords[i + 2] = 'l' then
  16.                    begin
  17.                         glRotatef(90, 0, 1, 0);
  18.  
  19.                         delete(koords, i, 3);
  20.  
  21.                    end
  22.                    else
  23.                    begin
  24.                         if koords[i + 2] = 'r' then
  25.                         begin
  26.                              glRotatef(-90, 0, 1, 0);
  27.                              
  28.                              delete(koords, i, 3);
  29.  
  30.                         end;
  31.                    end;
  32.               end;
  33.          glBegin(GL_QUADS);
  34.             glMultiTexCoord2fARB(GL_TEXTURE0_ARB,0,1);
  35.             glMultiTexCoord2fARB(GL_TEXTURE1_ARB,0,1);
  36.             glVertex3f(StrToInt(copy(koords, i, 3)) - 1, 0, StrToInt(copy(koords, i + 6, 3)));
  37.  
  38.             glMultiTexCoord2fARB(GL_TEXTURE0_ARB,0,0);
  39.             glMultiTexCoord2fARB(GL_TEXTURE1_ARB,0,0);
  40.             glVertex3f(StrToInt(copy(koords, i, 3)) + 1, 0, StrToInt(copy(koords, i + 6, 3)));
  41.  
  42.             glMultiTexCoord2fARB(GL_TEXTURE0_ARB,1,0);
  43.             glMultiTexCoord2fARB(GL_TEXTURE1_ARB,1,0);
  44.             glVertex3f(StrToInt(copy(koords, i + 9, 3)) + 1, 0, StrToInt(copy(koords, i + 15, 3)));
  45.  
  46.             glMultiTexCoord2fARB(GL_TEXTURE0_ARB,1,1);
  47.             glMultiTexCoord2fARB(GL_TEXTURE1_ARB,1,1);
  48.             glVertex3f(StrToInt(copy(koords, i + 9, 3)) - 1, 0, StrToInt(copy(koords, i + 15, 3)));
  49.          glEnd();
  50.          glTranslatef(StrToInt(copy(koords, i + 9, 3)), 0, StrToInt(copy(koords, i + 15, 3)));
  51.          end;
  52.          i := i + 9;
  53.     end;
  54. end;
  55.  


das ergebnis soll ungefähr so aussehen

1111000
1111000
0000111
0000111
0000111
0000111
0000111

(1er = ein quadrat)

naja, ungefähr *g*

ich weiß, ein bissl viel auf einmal...

kann mir jemand sagen was ich falsch mache ?!

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 01, 2003 14:00 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Zwei Sachen :

1.) Es ist eine sehr schlechte Idee die Koordinaten bei jedem Objektrendern aus dem String auszulesen...das macht die Sache recht träge.

2.)Sag doch mal wo dein Problem liegt!Wie soll man dir denn helfen,wenn du uns da den Quellcode hinklatschtst und sagst das da was falsch ist.Konkretisiere dein Problem mal bitte.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 01, 2003 16:52 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
also:

wenn ich diesen code verwende, wird das erste rechteck richtig erzeugt.
das zweite rechteck wird aber 1. versetzt u. 2. NICHT gedreht (was ich komisch finde, den glRotatef führt er aus) angezeigt. desweiteren scheint es so, als ob ein drittes rechteck (etwa halb so groß wie das vorherige) auf der selben position gerendert wird, was ich überhaupt nicht verstehen kann.

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 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 | 16 Queries | GZIP : On ]