rgl: Zeichnen eines Würfels mit farbigen Flächen, Eckpunkten und Linien
Um den Effekt linearer Transformationen in 3D zu demonstrieren,x -> A x
, Ich möchte einen Würfel zeichnen und seine Transformation unter @ zeigA
. Dazu muss ich jedes Gesicht einzeln einfärben und die Eckpunkte und die Linien anzeigen, die jedes Gesicht umranden.
Ich kann nicht herausfinden, wie unterschiedliche Farben für die Gesichter verwendet werden und wie dies allgemeiner gestaltet wird, sodass ich nicht alle Schritte für das Ergebnis unter der Transformation wiederholen muss.
was ich versucht habe:
library(rgl)
c3d <- cube3d(color=rainbow(6), alpha=0.5)
open3d()
shade3d(c3d)
points3d(t(c3d$vb), size=5)
for (i in 1:6)
lines3d(t(c3d$vb)[c3d$ib[,i],])
Dies gibt das Bild unten. Aber ich verstehe nicht, wie die Gesichter gefärbt sind. Und ich scheine @ verwenden zu müsspoints3d
undlines3d
auf den Komponenten desc3d
Form und habe kein einziges Objekt, das ich transformieren kann.
Eine bestimmte Transformation ist durch die Matrix @ gegebA
unten, und hier ist, wie ich das der Szene hinzufüge,
A <- matrix(c( 1, 0, 1, 0, 2, 0, 1, 0, 2), 3, 3)
c3d_trans <- transform3d(c3d, A)
shade3d( c3d_trans )
points3d(t(c3d_trans$vb), size=5)
Das gibt
Gibt es eine Möglichkeit, dies zu vereinfachen und allgemeiner zu nutzen?