Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dreidimensionales Array darstellen. (https://www.delphipraxis.net/153661-dreidimensionales-array-darstellen.html)

Muellermilchtrinker 16. Aug 2010 20:56

AW: Dreidimensionales Array darstellen.
 
Ich hab jetzt einen großen Cube, aber der ist nicht so schön quadratisch, es ist eher ein Quader.
Dann drehe ich noch so:
Das im Render:
Delphi-Quellcode:
glRotatef(RotateX, 1, 0, 0);
glRotatef(RotateY, 0, 1, 0);
glRotatef(RotateZ, 0, 0, 1);
Und dann ein zweiten Timer mit einem Interval von 1s:
Delphi-Quellcode:
procedure TForm1.Timer2Timer(Sender: TObject);
begin
  RotateY := RotateY - 0.15;
  if RotateY <= 0 then RotateY := RotateY + 360;
  RotateX := RotateX - 0.15;
  if RotateX <= 0 then RotateX := RotateX + 360;
end;
Doch leider ist die Drehung sehr ruckelig. Wie bekomme ich das flüssiger??? Und wie bekomme ich den Cube sauber quadratisch.

Jens01 16. Aug 2010 21:39

AW: Dreidimensionales Array darstellen.
 
Zitat:

Ich hab jetzt einen großen Cube, aber der ist nicht so schön quadratisch, es ist eher ein Quader.
Das wird am Perspektiv-Modus liegen!
Irgendwo wird bei Dir das stehen:
Delphi-Quellcode:
gluPerspective(45.0, ClientWidth/ClientHeight, NearClipping, FarClipping);
Entweder gewöhnst Du Dich an den Anblick oder Du nimmst den Ortho-Modus
http://wiki.delphigl.com/index.php/glOrtho
http://wiki.delphigl.com/index.php/Tutorial_2D
Guck Dir bitte gluOrtho2D an.
Zitat:

Doch leider ist die Drehung sehr ruckelig. Wie bekomme ich das flüssiger???
Ich verstehe Deinen Code dazu irgendwie nicht, warum addierst Du die Winkel in der Render-Prod nicht einfach auf?
Delphi-Quellcode:
RotateY := RotateY + 1

Muellermilchtrinker 17. Aug 2010 17:51

AW: Dreidimensionales Array darstellen.
 
Zitat:

Zitat von Jens01 (Beitrag 1042636)
Zitat:

Doch leider ist die Drehung sehr ruckelig. Wie bekomme ich das flüssiger???
Ich verstehe Deinen Code dazu irgendwie nicht, warum addierst Du die Winkel in der Render-Prod nicht einfach auf?
Delphi-Quellcode:
RotateY := RotateY + 1

Den Code hab ich aus irgendeinem Tutorial. Wenn ich da jetzt +1 machen, dann sind die Abstände so groß, das ist dann garnicht mehr flüssig.

Zum Orthomodus:
Das versteh ich nicht. Kann mir nicht jemand die Zeile geben und sagen, wo ich das ändern soll???

PS:
Mich kotzt das ganze OpenGL an. Wieso geht das nicht einfacher??? Ich will jetzt endlich mein Programm fertig haben und mich nicht über dieses blöde OpenGL rumärgern.
Ich bräuchte eigentlich nur einen Code, der mir viele kleine Würfel darstellt. Und dann noch mein Array überprüft, ob eine eins, dann soll die Farbe des Würfels anders sein, als wenn dort eine null steht.

Jens01 17. Aug 2010 18:59

AW: Dreidimensionales Array darstellen.
 
Zitat:

Wenn ich da jetzt +1 machen, dann sind die Abstände so groß, das ist dann garnicht mehr flüssig.
Probier doch einen kleineren Summanden aus, zB 0.15.

Delphi-Quellcode:
if RotateY <= 0 then RotateY := RotateY + 360;
Ich glaube, diese Zeile hat in Deinem Code den Ärger gemacht.

Zitat:

Zum Orthomodus:
Das versteh ich nicht. Kann mir nicht jemand die Zeile geben und sagen, wo ich das ändern soll???
Wenn Du den Code aus dem Tut abgetippt hast, dann mußt Du die diese Zeile :
Delphi-Quellcode:
gluPerspective(45.0, ClientWidth/ClientHeight, NearClipping, FarClipping);
mit gluOrhto2D ersetzen.

Zitat:

Mich kotzt das ganze OpenGL an.
Ich hatte doch gesagt, dass OpenGL etwas länger dauert bis es läuft! Das ist 3D Grafik und dafür braucht man eben etwas. Wenn es kannst, dann gibt es Ruhm, Ehre und Anerkennung!:wink:

Muellermilchtrinker 17. Aug 2010 19:20

AW: Dreidimensionales Array darstellen.
 
Zitat:

Zitat von Jens01 (Beitrag 1042884)
Zitat:

Wenn ich da jetzt +1 machen, dann sind die Abstände so groß, das ist dann garnicht mehr flüssig.
Probier doch einen kleineren Summanden aus, zB 0.15.

Der kleine Summand, hab ich ja und es ist immer noch nicht flüssig. Hab die zwei Zeilen mal auskommentiert.
EDIT: Das mit dem flüssig hat sich erledigt, ich nutze ja die Timer Methode und musste da einfach die Framezahl bzw. Das Interval ändern.

Zitat:

Zitat von Jens01 (Beitrag 1042884)
Zitat:

Zum Orthomodus:
Das versteh ich nicht. Kann mir nicht jemand die Zeile geben und sagen, wo ich das ändern soll???
Wenn Du den Code aus dem Tut abgetippt hast, dann mußt Du die diese Zeile :
Delphi-Quellcode:
gluPerspective(45.0, ClientWidth/ClientHeight, NearClipping, FarClipping);
mit gluOrhto2D ersetzen.

Ich würd es ja ersetzen, aber ich weiß nicht, welche Parameter ich übergeben muss.

Zitat:

Zitat von Jens01 (Beitrag 1042884)
Zitat:

Mich kotzt das ganze OpenGL an.
Ich hatte doch gesagt, dass OpenGL etwas länger dauert bis es läuft! Das ist 3D Grafik und dafür braucht man eben etwas. Wenn es kannst, dann gibt es Ruhm, Ehre und Anerkennung!:wink:

Eigentlich sollte das nur für ein bzw. zwei Projekte sein. Und bei dem zweiten ist das das gleiche wie im ersten. Ich mein den Code, nicht das man denkt, dass das Projekt das selbe ist.

Muellermilchtrinker 19. Aug 2010 17:44

AW: Dreidimensionales Array darstellen.
 
Keiner ne Ahnung???

Jens01 19. Aug 2010 18:47

AW: Dreidimensionales Array darstellen.
 
Okay, Du gibst nicht auf. Also ..

Zitat:

Eigentlich sollte das nur für ein bzw. zwei Projekte sein. Und bei dem zweiten ist das das gleiche wie im ersten. Ich mein den Code, nicht das man denkt, dass das Projekt das selbe ist.
Ich sagte ja schon, das ist 3D Grafik und nicht so trivial. Hier gibt es eigentlich nur ganz oder gar nicht. Ansonsten mußt Du einen suchen, der es Dir macht. Hier gibt es wohl auch einige Freiberufler, die es für Geld machen.
GLScene ist ganz sicher auch eine gute Komponente, die es für D2009 bei sourceforge gibt.

Zitat:

Ich würd es ja ersetzen, aber ich weiß nicht, welche Parameter ich übergeben muss.
Ich selbst müßte -ehrlich gesagt- auch nachgucken, welche Parameter man genau einsetzen muß. Ich habe das für mich in der Hauptsache durch Probieren (try and error) herausgefunden. Bei meinem Programmteil läuft es.:wink:
Hier sind aber gute Beispiele und einige Übungen -auch für diese Ortho-Sache. Das Buch mußt Du DIr ja nicht unbedingt kaufen.
http://www.inf.tu-dresden.de/content...amme/index.htm

Medium 19. Aug 2010 18:49

AW: Dreidimensionales Array darstellen.
 
Ohne nen büschen Arbeit und Einsatz geht's halt nicht. Du willst ne 3D-Darstellung, also musst du eine bauen. Die nötigen Infos hast du, und die OpenGL Docs sind nicht wirklich schlecht. Was fix und fertiges gibt's so wohl nicht. Eigentlich ist das sogar ein 1A Einstiegsprojekt für OpenGL, da es ein wunderbares und simples Beispiel ist.

Muellermilchtrinker 19. Aug 2010 18:58

AW: Dreidimensionales Array darstellen.
 
Zitat:

Zitat von Jens01 (Beitrag 1043517)
Okay, Du gibst nicht auf. Also ..

Wer hat gesagt, dass ich aufgeb??? :D

Zitat:

Zitat von Jens01 (Beitrag 1043517)
Ich sagte ja schon, das ist 3D Grafik und nicht so trivial. Hier gibt es eigentlich nur ganz oder gar nicht. Ansonsten mußt Du einen suchen, der es Dir macht. Hier gibt es wohl auch einige Freiberufler, die es für Geld machen.
GLScene ist ganz sicher auch eine gute Komponente, die es für D2009 bei sourceforge gibt.

Ich will des jetzt schon mit OpenGL machen. Hab ja auch damit angefangen und zahlen will ich nicht. :D

Aber ich werd mir deine Seite demnächst mal anschauen. Jetzt steht erstmal Urlaub auf dem Plan. :D

Einen CubeEditor sollte ja auch 3D-Ansicht enthalten und der dazugehörige Simulator dafür, brauch ja auch was als Ausgabe. Werd mich wieder melden, wenn ich ein Problem hab (wird noch öfters vorkommen :stupid:).

PhilmacFLy 19. Aug 2010 19:02

AW: Dreidimensionales Array darstellen.
 
Nur so als Gedanke, wie wärs wenn dus anstatt als Würfel also Tabellen darstelltst und die z Achse die anzahl der Tabellen sind und die quasi so durchblättern lässt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:09 Uhr.
Seite 2 von 5     12 34     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz