Zeigen Sie mehrere 2D-Diagramme in 3D mit Graphics in Mathematica an?

7

Beachten Sie Folgendes:

%Vor%

%Vor%

  • Ist es möglich, dass ich den Blues zeichne? Scheiben "hinter" den roten in einem 3 D Grundstück?

Unten ist nicht was ich brauche:

    
500 26.06.2011, 21:37
quelle

3 Antworten

10

So?

%Vor%

Viele von ihnen mit Opazität .2:

%Vor%

und 400 scheinen in Bezug auf die Geschwindigkeit kein großes Problem zu sein (Sie können den Code oben leicht ändern, um ihn zu sehen).

EDIT: OK, nur um albern zu sein, probiere das

%Vor%

was

ergibt

(oder etwas Ähnliches), drehbar, in Echtzeit aktualisiert usw.

    
acl 26.06.2011, 21:42
quelle
9

Siehe die auf "Lunchtime Playground: Fun with Mathematica" präsentierte Lösung hier: Ссылка

    
Eli Lansey 27.06.2011 00:16
quelle
4

Verwenden transparenter Texturen zum Rendern dieser Kreise in Ebenen wie ACL ist eine nette Lösung, es sei denn, man möchte mit dem resultierenden 3D-Objekt interagieren. Das Rendern von 3D-Objekten, die transparente Elemente enthalten, erfolgt softwaremäßig, während es ansonsten in Hardware erfolgt wäre :

  

Der 3D-Renderer verwendet zwei verschiedene   Methoden zum Sortieren von Polygonen. Zum   Grafikszenen, die keine enthalten   Transparenz, ein Hardware-beschleunigt   Tiefenpuffer wird verwendet. Ansonsten der   Renderer verwendet eine Binärraumpartition   Baum zum Teilen und Sortieren von Polygonen aus   jeder Standpunkt. Der BSP-Baum ist langsamer   zu erstellen und ist keine Hardware   beschleunigt, aber es bietet die meisten   allgemeine Fähigkeit, Polygone zu unterstützen.

Auf meinem Laptop ist die Interaktion mit 3D-Grafiken unglaublich langsam, sobald transparente Objekte erscheinen.

Die Lösung wäre, 3D-Festplatten anstelle von halbtransparenten Ebenen mit 2D-Festplatten zu verwenden. Da MMA nicht über 3D Disk s oder Circle s verfügt, wenn Sie so etwas tun möchten, müssen Sie Ihre eigenen rollen. Eine nackte Version wäre etwa:

%Vor%

Ihre Layer würden dann wie folgt generiert:

%Vor%

    
Sjoerd C. de Vries 27.06.2011 12:52
quelle