Wireframe

Gli spigoli

12 cilindri… di 4 colori

#include "colors.inc"

cylinder{ < 1, 1, 1> < 1, 1,-1>, 0.1 pigment{ color Blue   } }
cylinder{ < 1, 1, 1> < 1,-1, 1>, 0.1 pigment{ color Blue   } }
cylinder{ < 1, 1, 1> <-1, 1, 1>, 0.1 pigment{ color Blue   } }

cylinder{ < 1,-1,-1> < 1, 1,-1>, 0.1 pigment{ color Cyan   } }
cylinder{ < 1,-1,-1> < 1,-1, 1>, 0.1 pigment{ color Cyan   } }
cylinder{ < 1,-1,-1> <-1,-1,-1>, 0.1 pigment{ color Cyan   } }

cylinder{ <-1,-1, 1> <-1, 1, 1>, 0.1 pigment{ color Green  } }
cylinder{ <-1,-1, 1> < 1,-1, 1>, 0.1 pigment{ color Green  } }
cylinder{ <-1,-1, 1> <-1,-1,-1>, 0.1 pigment{ color Green  } }

cylinder{ <-1, 1,-1> < 1, 1,-1>, 0.1 pigment{ color Yellow } }
cylinder{ <-1, 1,-1> <-1, 1, 1>, 0.1 pigment{ color Yellow } }
cylinder{ <-1, 1,-1> <-1,-1,-1>, 0.1 pigment{ color Yellow } }

camera      { location<0,0,-4> look_at<0,0,0> }
light_source{         <0,0,-4> color White    }

Spigoli e vertici

12 cilindri + 8 sfere

#include "colors.inc"

cylinder{ < 1, 1, 1> < 1, 1,-1>, 0.1 pigment{ color Blue   } }
cylinder{ < 1, 1, 1> < 1,-1, 1>, 0.1 pigment{ color Blue   } }
cylinder{ < 1, 1, 1> <-1, 1, 1>, 0.1 pigment{ color Blue   } }
cylinder{ < 1,-1,-1> < 1, 1,-1>, 0.1 pigment{ color Cyan   } }
cylinder{ < 1,-1,-1> < 1,-1, 1>, 0.1 pigment{ color Cyan   } }
cylinder{ < 1,-1,-1> <-1,-1,-1>, 0.1 pigment{ color Cyan   } }
cylinder{ <-1,-1, 1> <-1, 1, 1>, 0.1 pigment{ color Green  } }
cylinder{ <-1,-1, 1> < 1,-1, 1>, 0.1 pigment{ color Green  } }
cylinder{ <-1,-1, 1> <-1,-1,-1>, 0.1 pigment{ color Green  } }
cylinder{ <-1, 1,-1> < 1, 1,-1>, 0.1 pigment{ color Yellow } }
cylinder{ <-1, 1,-1> <-1, 1, 1>, 0.1 pigment{ color Yellow } }
cylinder{ <-1, 1,-1> <-1,-1,-1>, 0.1 pigment{ color Yellow } }

sphere{ < 1, 1, 1> 0.2 pigment{ color Red } }
sphere{ < 1, 1,-1> 0.2 pigment{ color Red } }
sphere{ < 1,-1, 1> 0.2 pigment{ color Red } }
sphere{ < 1,-1,-1> 0.2 pigment{ color Red } }
sphere{ <-1, 1, 1> 0.2 pigment{ color Red } }
sphere{ <-1, 1,-1> 0.2 pigment{ color Red } }
sphere{ <-1,-1, 1> 0.2 pigment{ color Red } }
sphere{ <-1,-1,-1> 0.2 pigment{ color Red } }

camera      { location<0,0,-4> look_at<0,0,0> }
light_source{         <0,0,-4> color White    }

Punto di vista

L’osservatore si sposta a sinistra, in alto

...
camera      { location<-4,2,-3> look_at<0,0,0> }
light_source{         <-4,2,-3> color White    }

Macro

La libreria shapes.inc contiene una macro per un box wireframe.
I parametri specificano i due vertici opposti e il raggio dei cilindri e delle sfere utilizzate.

#include "shapes.inc"
#include "colors.inc"

object{ Wire_Box_Union(<-1,-1,-1>, <1,1,1>, 0.1) pigment{ color White } }

light_source{ <0,0,-4>, color White }
camera{ location<0,0,-4> look_at<0,0,0> }

Cubi wireframe

I cubi sono centrati nell’origine e poi traslati.
Il raggio permette di modificare lo spessore dei tubi.

#include "shapes.inc"
#include "colors.inc"

object{ Wire_Box_Union(<-1,-1,-1>, <1,1,1>, 0.2) pigment{ color Red     } translate<-2, 0.5,0.5> }
object{ Wire_Box_Union(<-1,-1,-1>, <1,1,1>, 0.3) pigment{ color Green   } translate< 0, 0.5,0.5> }
object{ Wire_Box_Union(<-1,-1,-1>, <1,1,1>, 0.2) pigment{ color Blue    } translate<+2, 0.5,0.5> }
object{ Wire_Box_Union(<-1,-1,-1>, <1,1,1>, 0.1) pigment{ color Cyan    } translate<-1,-0.5,0  > }
object{ Wire_Box_Union(<-1,-1,-1>, <1,1,1>, 0.1) pigment{ color Magenta } translate<+1,-0.5,0  > }

light_source{ <0,1,-6>, color White }
camera{ location<0,1,-6>  look_at<0,0,0> }

Cubo 4D

Due cubi wireframe collegati con 8 cilindri.

#include "shapes.inc"
#include "colors.inc"

object{ Wire_Box_Union(<-2.1,-2.1,-2.1>, <+2.1,+2.1,+2.1>, 0.1) pigment { color Cyan    } }
object{ Wire_Box_Union(<-1.1,-1.1,-1.1>, <+1.1,+1.1,+1.1>, 0.1) pigment { color Magenta } }

cylinder{ <-2,-2,-2> <-1,-1,-1>, 0.1 pigment{ color Yellow } }
cylinder{ <-2,-2,+2> <-1,-1,+1>, 0.1 pigment{ color Yellow } }
cylinder{ <-2,+2,-2> <-1,+1,-1>, 0.1 pigment{ color Yellow } }
cylinder{ <-2,+2,+2> <-1,+1,+1>, 0.1 pigment{ color Yellow } }
cylinder{ <+2,-2,-2> <+1,-1,-1>, 0.1 pigment{ color Yellow } }
cylinder{ <+2,-2,+2> <+1,-1,+1>, 0.1 pigment{ color Yellow } }
cylinder{ <+2,+2,-2> <+1,+1,-1>, 0.1 pigment{ color Yellow } }
cylinder{ <+2,+2,+2> <+1,+1,+1>, 0.1 pigment{ color Yellow } }

light_source {         <0,4,-6>, color White    }
camera       { location<0,4,-6>  look_at<0,0,0> }

Bisogna aumentare di poco le dimensioni dei cubi per farli combaciare con i cilindri di collegamento.