Java3D: Flächen teilen

Polygone zu zerlegen scheint in Java3D ohne weiteres nicht möglich zu sein. Mußt du wohl selber programmieren.

Möglichkeiten sind der Weiler-Atherton-Algorithmus:
http://www.integis.ch/documents/ISem_Opprecht_Overlay_2002-02-28.pdf (Seite 15 ff),
Weiler-Atherton-Algorithmus ? Wikipedia ,
weiler-atherton ,
http://pilat.free.fr/english/pdf/weiler.pdf ,
Weiler-Atherton Algorithm ,
http://www.uni-forst.gwdg.de/~wkurth/cb/html/cg_v07c.doc ,
Weiler-Atherton Clipping Applet (mit Applet);

und der Vatti-Algorithmus:
Vatti clipping algorithm - Wikipedia, the free encyclopedia ,
A generic solution to polygon clipping (hier nicht öffentlich einsehbar),
wirst du wohl als Buch im Buchhandel bestellen müssen.

Der Weiler-Atherton-Algorithmus ist vermutlich immer noch zu finden im Foley-van-Dam Computer Graphics. Principles and Practice. Second Edition in C.: Principles and Practice in C: Amazon.de: James D. Foley, Andries Van Dam, Steven K. Feiner: Englische Bücher (englisch und schwer).

:rtfm:
 
Erstaunlich viel erstaunlich spezifische Antwort für eine so unspezifische Frage... 😉


(0,0)-(1,0)
(1,1)-(1,1)
-> Aufteilen ->
(0,0)-(0.5,0)
(1,1)-(0.5,1)
und
(0.5,0)-(1,0)
(0.5,1)-(1,1)

Fertig 😀
 
Hi

Ich hab mir nochmal die Links angeguckt.

Ich meinte mit schneiden nicht "überschneiden" sondern in zwei teile brechen.Hat dafür einer eine Idee ?
 
Ein Zerteilen ist ein Überscheiden, nämlich zwischen dem Polygon und einem unendlich großen Quadrat. Oder Würfel? Geht es überhaupt um 3D?
 
;(;(;(
Wenn du uns auch nur ein kleines bisschen Information geben würdest, was du machen willst, dann könnte dir bestimmt auch jemand helfen...

Insbesondere was du unter "Fläche" (eine mathematische Ebene / ein Polygon / vllt eine Art HeightMap / etwas was konkret mit Java3D zu tun hat wie z.B. eine flache Box / ...) und unter "teilen" (hängt natürlich auch von "Fläche" ab, aber z.B.: einfach nur mathematisch das Polygon teilen / die Box in 2 Boxen splitten und schön animiert voneinander wegbewegen, sodass es aussieht als würde sie zerbrechen / ...) verstehst.

Wenn jetzt nur ne 3-Wort-Antwort kommt, schließ ich den Thread...
 
Dass deine Fragestellung nicht genau genug war, um sie beantworten zu können, sollte inzwischen klar geworden sein. Schau' dir an, wie man ein Dreieck mit einer Linie in zwei Hälften teilt. Das ist so frickelig, dass ich jedem Raten würde, es mit einer AWT "Area" zu machen. Und dann bastel' dir deine Geometrie da draus :bahnhof:
 
;(;(;(
Wenn du uns auch nur ein kleines bisschen Information geben würdest, was du machen willst, dann könnte dir bestimmt auch jemand helfen...

Insbesondere was du unter "Fläche" (eine mathematische Ebene / ein Polygon / vllt eine Art HeightMap / etwas was konkret mit Java3D zu tun hat wie z.B. eine flache Box / ...) und unter "teilen" (hängt natürlich auch von "Fläche" ab, aber z.B.: einfach nur mathematisch das Polygon teilen / die Box in 2 Boxen splitten und schön animiert voneinander wegbewegen, sodass es aussieht als würde sie zerbrechen / ...) verstehst.

Wenn jetzt nur ne 3-Wort-Antwort kommt, schließ ich den Thread...

Achso.Ich meine ein Geometry Object(TriangleArray),das in einer Shape3D enthalten ist.
 
Dass deine Fragestellung nicht genau genug war, um sie beantworten zu können, sollte inzwischen klar geworden sein. Schau' dir an, wie man ein Dreieck mit einer Linie in zwei Hälften teilt. Das ist so frickelig, dass ich jedem Raten würde, es mit einer AWT "Area" zu machen. Und dann bastel' dir deine Geometrie da draus :bahnhof:

Wie kann man denn aus einer Shape3d eine Area machen ?
 
Ach so, das ist natürlich ganz einfach:
Java:
Shape3D[] divide(Shape3D shape, Plane plane)
{
    return com.sun.java.special.java3d.secret.internal.Magic.doWhatIWantWith(shape, plane);
}

Mal im Ernst: Das wirkt schon fast Trollig :noe:
 
Bist du schon weitergekommen ? :rtfm:
Der Weiler-Atherton-Algorithmus ist das richtige Verfahren, um Polygone zu zerlegen.
Im dreidimensionalen Raum liegen Polygone allerdings normalerweise nicht aufeinander, sondern müssen aufeinander projiziert werden. Soooviel brauchst du also nicht selber zusätzlich zu programmieren. 😉
 
Hi

Ich bin auf der Arbeit im Moment mit anderen Problemen beschäftigt.Ich werde mich eventuell demnächst wieder damit beschäftigenTrotzdem danke der Nachfrage !

Und sorry,wenn ich diesmal etwas maulfaul war bei diesen Thread.
 

Zurück
Oben