AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Drahtgitteroptimierung evtl. mit Baumstruktur. Wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Drahtgitteroptimierung evtl. mit Baumstruktur. Wie?

Ein Thema von dizzy · begonnen am 14. Jan 2004 · letzter Beitrag vom 14. Jan 2004
 
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#1

Drahtgitteroptimierung evtl. mit Baumstruktur. Wie?

  Alt 14. Jan 2004, 17:32
Hallo liebe Leut'.

Folgendes Problem: Ich muss ein 3D-Drahtgitter optimieren. Bisheriges Problem ist, dass mein Programm zwar ein 3D-Objekt bzw. die Koordinaten der Flächenpunkte erfolgreich errechnet, allerdings werden bei z.B. 2 zusammenhängenden Flächen die gemeinsamen Punkte doppelt hinterlegt. Dies möchte ich gerne verhindern!
Als Beispiel mal im .obj-Stil (.obj = 3D-Dateiformat als ASCII, ähnlich .dfx (Autocad)) wie es dann ausschaut:

Delphi-Quellcode:
Vertices:
1 : 0 / 0 / 0
2 : 10 / 0 / 0
3 : 0 / 10 / 0
Face 1: 1 / 2 / 3 <---- gibt an, aus welchen Punkten (Vertices) die Fläche besteht

Vertices:
4 : 10 / 0 / 0
5 : 0 / 10 / 0
6 : 10 / 10 / 0
Face 2: 4 / 5 / 6
Man sieht: Die Punkte (Koordinaten) 2/3 und 4/5 sind redundant und unnötig. Optimiert würde das etwa so aussehen:
Delphi-Quellcode:
Vertices:
1 : 0 / 0 / 0
2 : 10 / 0 / 0
3 : 0 / 10 / 0
4 : 10 / 10 / 0
Face 1: 1 / 2 / 3
Face 2: 2 / 3 / 4
Ich kenne bei der Berechnung der Puntke sowohl seine Koordinaten, als auch seine Flächenzugehörigkeit. Ein Weg, den ich mir vorstellen könnte, wäre eine Baumstruktur, die man dann beim Schreiben in die Datei rekursiv ausliest. Jedoch wurschtel ich hier schon gut rum, bekomm aber keine ordentliche unproblematische Struktur auf die Beine

Was auch zu beachten wäre: Es sind nicht selten > 1.000.000 Punkte!!! die es zu verwalten gilt. Also muss das Teil auch noch sehr schnell sein UND zu allem Überfluss auch noch speicheroptimiert sein.


Wie würdet IHR an sowas herangehen?
(Ist übrigends mein erstes Problem dieser Art. Mir fehlt wohl etwas Übung...)

Nochwas: Dieses Programm hat mit DirectX oder OGl nix zu tun. Von daher (falls es solche Methoden dort überhaupt gibt) wären Verweise in diese Richtung nicht sonderlich hilfreich. Das wäre dann nochmal Neuland für den kleinen dizzy

Ganz dick danke schonmal!
Herzlichen Gruss,
dizzy
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz