Thaxll'ssillyia
Captain
- Registriert
- Dez. 2007
- Beiträge
- 3.532
Hallo Community,
ich sitze gerade an einer mir selbst gestellten Aufgabe rund um die 3-dimensionale Geometrie.
Gegeben:
- Eine beliebige Anzahl an unterschiedlichen Punkten im 3D-Raum
- Die Punkte bilden ein beliebiges geometrisches Objekt im Raum ab, Beispiele: bei 3 Punkten: 2D-Dreieck, bei 4 Punkten: ein windschiefes Teil oder eine 3-seitige Pyramide, bei 5 Punkten: 4-seitige Pyramide, bei 8 Punkten Würfel, Quader oder Pyramidenstumpf usw.
- Einzige Einschränkung: Die geometrischen Objekte haben keine "Vertiefungen", also keine negativen Ausbuchtungen (finde gerade keine besseren mathematischen Begriff)
Aufgabe: Ein (Pseudo-)Code bilden, um daraus folgende Struktur abzuleiten (Equivalent zu Klassen):
Ein Component (Modell als Ganzes) besteht aus X Panes (Außenseiten), welche wiederum aus X Punkten (Eckpunkten) besteht.
Beispiel:
- Bei 2D-Dreieck entsteht ein Component mit einem Pane, welches 3 Punkte hat.
- Bei 4-sitige Pyramide entsteht ein Component mit 5 Panes, wobei alle 3 Eckpunkte haben außer das "Bodenpanel" mit 4 Eckpunkten
- Bei 4-seitigen Pyramidenstumpf entsteht ein Component mit 6 Panes, welche jeweils 4 Eckpunkte haben.
Meine Idee (Pseudocode):
Probleme:
Problem 1: Der Code würde mir nur Dreiecke liefern (es können aber auch 4- oder 5ecke sein)
Problem 2: Der Code liefert mir auch Dreiecke, die quer durch das Model gehen (ich brauche aber nur die Außenseiten)
Ansatzpunkt zur Problem 1: Ich müsste alle weiteren Punkte erneut einsetzen und prüfen, ob die auf der auch auf der 3-Punkt-Ebene liegen
Ansatzpunkt zu Problem 2: Ich bräuchte vorher eine Methode, um nur "angrenzende" Punkte, also Punkte, die von dem Ausgangspunkt "außen liegen" zu filtern
Vielleicht steh ich auch auf dem Schlauch und es gibt dafür viel einfachere Methoden? Danke für jeden Hinweis!
VG, Thax
ich sitze gerade an einer mir selbst gestellten Aufgabe rund um die 3-dimensionale Geometrie.
Gegeben:
- Eine beliebige Anzahl an unterschiedlichen Punkten im 3D-Raum
- Die Punkte bilden ein beliebiges geometrisches Objekt im Raum ab, Beispiele: bei 3 Punkten: 2D-Dreieck, bei 4 Punkten: ein windschiefes Teil oder eine 3-seitige Pyramide, bei 5 Punkten: 4-seitige Pyramide, bei 8 Punkten Würfel, Quader oder Pyramidenstumpf usw.
- Einzige Einschränkung: Die geometrischen Objekte haben keine "Vertiefungen", also keine negativen Ausbuchtungen (finde gerade keine besseren mathematischen Begriff)
Aufgabe: Ein (Pseudo-)Code bilden, um daraus folgende Struktur abzuleiten (Equivalent zu Klassen):
Ein Component (Modell als Ganzes) besteht aus X Panes (Außenseiten), welche wiederum aus X Punkten (Eckpunkten) besteht.
Beispiel:
- Bei 2D-Dreieck entsteht ein Component mit einem Pane, welches 3 Punkte hat.
- Bei 4-sitige Pyramide entsteht ein Component mit 5 Panes, wobei alle 3 Eckpunkte haben außer das "Bodenpanel" mit 4 Eckpunkten
- Bei 4-seitigen Pyramidenstumpf entsteht ein Component mit 6 Panes, welche jeweils 4 Eckpunkte haben.
Meine Idee (Pseudocode):
Code:
Iteriere jeden Punkt p {
- Liefere mir alle anderen Punkte
- Bilde zu jedem anderen Punkt einen Vektor v von Punkt p
- Bilde zu jedem gebildeten Vektor v eine Ebene e
Iteriere jede Ebene e {
Setze anderen Punkt in Ebene ein
Bilde aus der resultierenden Ebene ein Pane mit den entsprechenden Eckpunkten
}
}
Probleme:
Problem 1: Der Code würde mir nur Dreiecke liefern (es können aber auch 4- oder 5ecke sein)
Problem 2: Der Code liefert mir auch Dreiecke, die quer durch das Model gehen (ich brauche aber nur die Außenseiten)
Ansatzpunkt zur Problem 1: Ich müsste alle weiteren Punkte erneut einsetzen und prüfen, ob die auf der auch auf der 3-Punkt-Ebene liegen
Ansatzpunkt zu Problem 2: Ich bräuchte vorher eine Methode, um nur "angrenzende" Punkte, also Punkte, die von dem Ausgangspunkt "außen liegen" zu filtern
Vielleicht steh ich auch auf dem Schlauch und es gibt dafür viel einfachere Methoden? Danke für jeden Hinweis!
VG, Thax
Zuletzt bearbeitet: