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 desc3dForm 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?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage