Einzelnen Beitrag anzeigen

Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#11

Re: Facharbeit - 3D Topographie anzeigen

  Alt 7. Jan 2006, 16:32
hm... ich hab den aus einem meiner Projekte kopiert. Aber ich werde das natürlich sofort überprüfen.

EDIT: tatsächlich...
hier das ganze in verbessert und getestet:

Delphi-Quellcode:
type Single2dArray = array of array of single;

function BuildDL(heightmap: Single2dArray; scalexy,scalez:single): integer;
var i,k,t:integer;
begin
result := glGenLists(1); //eine DL, bitte!

glNewlist(result, GL_COMPILE); //jetzt gehts los!
  t := round((length(heightmap) div 2) * scalexy);
  gltranslatef(-t,-t,0); // In die Mitte verschieben
  glbegin(gl_triangles);
  glcolor3f(255,0,0);
  for i:=1 to length(heightmap)-2 do // ich greife auch auf i-1 und i+1 zu!
    for k := 1 to length(heightmap[i])-2 do // ich greife auch auf k-1 und k+1 zu!
      begin
        //erstes dreieck
        glVertex3f(i * scalexy, k * scalexy, heightmap[i,k] * scalez);
        glVertex3f((i-1) * scalexy, (k) * scalexy, heightmap[i-1,k] * scalez);
        glVertex3f(i * scalexy, (k+1) * scalexy, heightmap[i,k+1] * scalez);
        //zweites dreieck
        glVertex3f((i-1) * scalexy, k * scalexy, heightmap[i-1,k] * scalez);
        glVertex3f((i-1) * scalexy, (k-1) * scalexy, heightmap[i-1,k-1] * scalez);
        glVertex3f((i+1) * scalexy, (k+1) * scalexy, heightmap[i+1,k+1] * scalez);
      end;
  glend;
  glcolor3f(255,255,255);
glEndList;
end;
Im Anhang ein kleines Beispielprogramm. Benötigt dglopengl.pas.
Angehängte Dateien
Dateityp: zip opengl15_template_702.zip (4,8 KB, 24x aufgerufen)
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat