Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi 3D Darstellung in Delphi (https://www.delphipraxis.net/71320-3d-darstellung-delphi.html)

Maren und Anika 13. Jun 2006 09:15


3D Darstellung in Delphi
 
Hallo
Also wir brauchen Hilfe für unser Schulprojekt.
Wir sollen eine 3D Kugel in Delphi darstellen und dürfen dabei kein Opengl, Directx usw. benutzen.
Wie müssen bzw. wie sollten wir da anfangen? Brauchen Starthilfe!!!

Mit lieben Grüßen

Maren und Anika

:kiss:

Kroko1999 13. Jun 2006 09:18

Re: 3D Darstellung in Delphi
 
scheint ja eine weit verbreitete Hausaufgabe zu sein
siehe hier

SirThornberry 13. Jun 2006 09:19

Re: 3D Darstellung in Delphi
 
Sowas müsst Ihr in der Schule machen? Vor einiger Zeit hab ich mich dem Thema mal angenommen.
Hier das Ergebnis (mit Quelltext): http://www.delphipraxis.net/internal...=509283#509283

Oder sollt ihr einfach nur ein Bild wo eine Kugel zu sehen ist darstellen?

DGL-luke 13. Jun 2006 09:26

Re: 3D Darstellung in Delphi
 
also eine 3d-kugel is ja relativ witzlos... 3d quader, klar, aber was hindert dich davon, einfach einen ein bisschen schattierten Krweis zu zeichnen und zu sagen "das is 3d!"?

Maren und Anika 13. Jun 2006 09:34

Re: 3D Darstellung in Delphi
 
Vielen Dank SirThornberry :kiss:
Doch sag mal hast du da nur ein Kreis mit Bildeffekt erstellt oder einen Kreis?
Wir müssen das richtig in 3D darstellen, das heißt wir müssten da noch Licht- und Schatteneffekte einbauen.
Hast du vielleicht eine Ahnung von wie man das machen könnte?

Liebe Grüße
Maren und Anika

SirThornberry 13. Jun 2006 09:36

Re: 3D Darstellung in Delphi
 
Das ist einfach nur ein Bild mit vergrößerungseffekt (den Effekt von der Lupe). Licht und Schatten ist somit nur bedingt bis garnicht berücksichtigt. Wenn ihr das drehen eines Punktes um einen anderen Punkt bereits hattet könntet ihr ganz viele Punkte nehmen und diese um einen Mittelpunkt drehen.

Maren und Anika 13. Jun 2006 09:37

Re: 3D Darstellung in Delphi
 
Also ich meine auf die Idee mit Licht und Schatten bin ich auch schon gekommen. Doch wie soll man sowas erstellen wenn man nur das Grundwissen hat. Es ist ein sehr ernstes und wichtiges Projekt und daher sind wir für jede Hilfe dankbar.

lg
Maren und Anika

SirThornberry 13. Jun 2006 09:40

Re: 3D Darstellung in Delphi
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier nochmal ein Beispiel wie ich das mit den Punkten gemeint hab.

Maren und Anika 13. Jun 2006 09:41

Re: 3D Darstellung in Delphi
 
Aber dann könnte man keine Texttur aufbringen.
Wir haben ganz viel mit Vektoren und Matritzen in der Schule gearbeitet und müssten das doch jetzt irgendwie anwenden können.
Und wo ist das Beispiel?
:kiss:

Maren und Anika 13. Jun 2006 09:48

Re: 3D Darstellung in Delphi
 
Ja das Beispiel ist gut. Hast du da auch den Quelltext dazu? das wäre natürlich perfekt. Wir könnten das dann auch einbauen.

Maren und Anika 13. Jun 2006 13:10

Re: 3D Darstellung in Delphi
 
Soooooooo,

Jetzt haben wir das richtige Wort. Wir wollen einen Rotationskörper erstellen. Wisst ihr wie das in delphi funktioniert? :roll:

franktron 13. Jun 2006 13:13

Re: 3D Darstellung in Delphi
 
Und wo ist jetzt euer Problem wist ihr nicht wie man einen erstellt oder wie man ihn Zeichnet oder was ???

Maren und Anika 13. Jun 2006 13:19

Re: 3D Darstellung in Delphi
 
Wir haben minimale Grundkenntnisse in Delphi un müssen in 3 Wochen eine Kugel erstellt haben, die am besten noch ne Textur hat und Licht/Schatteneffekte aufweist.

Wie fangen wir da an?
Einen 3D Raum mit Bild und Weltkoordinaten bekommen wir gerade noch gebastelt.

Und nun? :hi:

Evian 13. Jun 2006 14:22

Re: 3D Darstellung in Delphi
 
Also ihr habt ja euer Formular und da ihr keine Direct(X), oder entsprechende engines nutzen dürft, müsst ihr wohl zwangsläufig auf einem TImage zeichnen. Die Zeichenoberfläche des TImage's besteht aus einer festgelegten anzahl von Pixeln.. was ja praktisch ein 2dimensionales koordinatensystem ergibt. Mit ein wenig Fantasie lässt sich daraus auch ein dreidimensionales Koordinatensystem machen und dann habt ihr ja schon quasi euren Ansatz. Hier wird habt ihr alle Mathematischen Grundlagen um eine Kugel in einem dreidimensionalen Koordinatensystem zu zeichen. Wenn man dann von einem bestimmten Punkt auf der Kugel ausgehend die Farbwerte Schrit für Schritt verändert, dann kann man dadurch mehr oder weniger sogar Licht effekte darstellen. Probiert das mal aus!

Daniel G 13. Jun 2006 14:26

Re: 3D Darstellung in Delphi
 
Zitat:

Zitat von Maren und Anika
Einen 3D Raum mit Bild und Weltkoordinaten bekommen wir gerade noch gebastelt.

Habt ihr das schon fertig? Zeigt doch mal, was ihr habt, vllt. kann man darauf aufbauen.

turboPASCAL 13. Jun 2006 15:34

Re: 3D Darstellung in Delphi
 
Zitat:

Zitat von Daniel G
Zitat:

Zitat von Maren und Anika
Einen 3D Raum mit Bild und Weltkoordinaten bekommen wir gerade noch gebastelt.

Habt ihr das schon fertig? Zeigt doch mal, was ihr habt, vllt. kann man darauf aufbauen.

Jo, das währe mal eine Massnahme.

Und was ist denn das für 'ne Schule wo einem so etwas zugemutet wird ? ;)

Licht sowie Schattenberechnung ist recht komplex und sollte ein wenig Erfahrung voraussetzen.
Einen Körper mit einer Textur zu überziehen ist auch keine einfache Angelegenheit wenn man bedenkt dass es da verdeckte oder halbverdeckte Flächen gibt...

SirThornberry 13. Jun 2006 15:37

Re: 3D Darstellung in Delphi
 
zumal ein viereckiges Bild nicht wirklich auf eine Kugel geht. Das merkt man wenn man mal versucht ein Blatt papier um einen Ball zu wickeln. Da muss man das Papier knittern bzw. einschneiden.

Maren und Anika 13. Jun 2006 16:35

Re: 3D Darstellung in Delphi
 
Danke :-D

Den 3D Raum haben wir noch inner Schule auf dem Poolserver gespeichert-kommt demnächst.
Wir sind sogar nur ein info Grundkurs, aber unser Lehrer unterrichtet auch an der Hochschule.... :warn:

Ein Rotationskörper wird ja so erstellt, indem man einen Polygonzug macht und den in nem bestimmten Winkel dreht und dann die Eckpunkte verbindet. ( So erhält man oben und unten Dreiecke und an sonsten Vierecke).

Wir posten bald die Datei mit dem Grundgerüßt. :coder:

Bis denn :hello:

Maren und Anika 15. Jun 2006 10:28

Re: 3D Darstellung in Delphi
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier ist unsere vorgefertigte Datei... Gleich folgt die andere Datei!

Vielleicht könnt ihr damit ja etwas anfangen :spin2:

Lieben Gruß Maren und Anika

Maren und Anika 15. Jun 2006 10:29

Re: 3D Darstellung in Delphi
 
Liste der Anhänge anzeigen (Anzahl: 1)
Und hier die 2. Datei :dancer2:

Maren und Anika 17. Jun 2006 12:17

Re: 3D Darstellung in Delphi
 
Ok, wir wissen jetzt wie es funktioniert.
Wir haben 3 Projektionearten um einen Würfel, Pyramide, usw. darzustellen, aber bei der Kugel klappt es einfach nicht.
Könnten ihr mal gucken ob es ein Fehler im Script gibt? :freak:

Delphi-Quellcode:
constructor CKugel.create(Radius,Winkel,Aufloesung:Integer;VW:CWinView);
      var
        Umfangsflaechenzahl : Integer;
        Eckenanzahl, Flaechenanzahl : Integer;
        i,von,bis:Integer;
        PF : Array of TSeitenflaeche;   //Anzahl "Aufloesung" Flächen
    begin
      Umfangsflaechenzahl:=360 div Winkel;
      Eckenanzahl:=(Aufloesung-2)*Umfangsflaechenzahl+2;
      Flaechenanzahl:=Umfangsflaechenzahl*Aufloesung;
      inherited create(Eckenanzahl,Flaechenanzahl,VW);
      von:=0;
      bis:=Umfangsflaechenzahl;
      for i:=von to bis-1 do
        begin
          SetLength(PF[i],3);            //e Flächen mit 3 Eckpunkten
          A[i]:=3;                       //Eckenanzahl pro Fläche
        end;
      von:=bis;
      bis:=bis+Flaechenzahl-2*Umfangsflaechenzahl;
      for i:=von to bis-1 do
        begin
          SetLength(PF[i],4);            //e Flächen mit 4 Eckpunkten
          A[i]:=4;                       //Eckenanzahl pro Fläche
        end;
      von:=bis;
      bis:=bis+Umfangsflaechenzahl;
      for i:=von to bis-1 do
        begin
          SetLength(PF[i],3);            //e Flächen mit 3 Eckpunkten
          A[i]:=3;                       //Eckenanzahl pro Fläche
        end;
:duck:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:07 Uhr.

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