3d/pr/roboter/hand.pov

287 lines
4.0 KiB
POVRay

#include "T_metall_schwarz.pov"
#declare fingerspitze =
union {
intersection {
box {
<-1, 0, -1>
<1, 4, 1>
}
sphere {
<0, 0, 0>, 1
scale <1, 4, 1>
}
}
sphere {
<0, 0, 0>, 1.2
}
}
#declare handflaeche =
#if (0)
union {
cone {
<-3, 0, 0>, 1,
<-3.6, 13, 0>, 1
}
cone {
<-1, 0, 0>, 1,
<-1.2, 14, 0>, 1
}
cone {
<+1, 0, 0>, 1,
<+1.2, 15, 0>, 1
}
cone {
<+3, 0, 0>, 1,
<+3.6, 14, 0>, 1
}
cone {
<-3.6, 13, 0>, 1
<+1.2, 15, 0>, 1
}
cone {
<+1.2, 15, 0>, 1
<+3.6, 14, 0>, 1
}
cone {
<-3, 0, 0>, 1,
<+5, 0, 0>, 1
}
sphere {
<-3, 0, 0>, 1
}
}
#else
blob {
cylinder {
<-3, 0, 0>,
<-3.6, 13, 0>, 2, 2
}
cylinder {
<-1, 0, 0>,
<-1.2, 14, 0>, 2, 2
}
cylinder {
<+1, 0, 0>,
<+1.2, 15, 0>, 2, 2
}
cylinder {
<+3, 0, 0>,
<+3.6, 14, 0>, 2, 2
}
cylinder {
<-3.6, 13, 0>,
<+1.2, 15, 0>, 2, 2
}
cylinder {
<+1.2, 15, 0>,
<+3.6, 14, 0>, 2, 2
}
cylinder {
<-3, 0, 0>,
<+5, 0, 0>, 2, 2
}
sphere {
<-3, 0, 0>, 2, 2
}
}
#end
#declare RD0x = 45; // 0 ..90
#declare RD0y = 180; // 90 .. 180
#declare RD1 = 30;
#declare RD2 = 30;
#declare daumen =
union {
union {
object {
fingerspitze
rotate <-RD2, 0, 0>
translate <0, 5, 0>
}
cone {
<0, 0, 0>, 1,
<0, 5, 0>, 1
}
sphere {
<0, 0, 0>, 1.2
}
rotate <-RD1, 0, 0>
translate <0, 6, 0>
}
cone {
<0, 0, 0>, 1,
<0, 6, 0>, 1
}
sphere {
<0, 0, 0>, 1.2
}
rotate <RD0x, 0, 0>
rotate <0, RD0y, 0>
}
#declare RZ0x = 0; // 0 ..90
#declare RZ0z = 0; // 0 .. 30
#declare RZ1 = 0;
#declare RZ2 = 0;
#declare zeigefinger =
union {
union {
object {
fingerspitze
rotate <-RZ2, 0, 0>
translate <0, 4, 0>
}
cone {
<0, 0, 0>, 1,
<0, 4, 0>, 1
}
sphere {
<0, 0, 0>, 1.2
}
rotate <-RZ1, 0, 0>
translate <0, 6, 0>
}
cone {
<0, 0, 0>, 1,
<0, 6, 0>, 1
}
sphere {
<0, 0, 0>, 1.2
}
rotate <-RZ0x, 0, 0>
rotate <0, 0, -RZ0z>
}
#declare RM0x = 0; // 0 ..90
#declare RM0z = 0; // -15 .. 15
#declare RM1 = 0;
#declare RM2 = 0;
#declare mittelfinger =
union {
union {
object {
fingerspitze
rotate <-RM2, 0, 0>
translate <0, 4, 0>
}
cone {
<0, 0, 0>, 1,
<0, 4, 0>, 1
}
sphere {
<0, 0, 0>, 1.2
}
rotate <-RM1, 0, 0>
translate <0, 7, 0>
}
cone {
<0, 0, 0>, 1,
<0, 7, 0>, 1
}
sphere {
<0, 0, 0>, 1.2
}
rotate <-RM0x, 0, 0>
rotate <0, 0, RM0z>
}
#declare RR0x = 0; // 0 ..90
#declare RR0z = 0; // -15 .. 15
#declare RR1 = 0;
#declare RR2 = 0;
#declare ringfinger =
union {
union {
object {
fingerspitze
rotate <-RR2, 0, 0>
translate <0, 4, 0>
}
cone {
<0, 0, 0>, 1,
<0, 4, 0>, 1
}
sphere {
<0, 0, 0>, 1.2
}
rotate <-RR1, 0, 0>
translate <0, 6, 0>
}
cone {
<0, 0, 0>, 1,
<0, 6, 0>, 1
}
sphere {
<0, 0, 0>, 1.2
}
rotate <-RR0x, 0, 0>
rotate <0, 0, RR0z>
}
#declare RK0x = 0; // 0 ..90
#declare RK0z = 0; // -15 .. 15
#declare RK1 = 0;
#declare RK2 = 0;
#declare kleinerfinger =
union {
union {
object {
fingerspitze
rotate <-RK2, 0, 0>
translate <0, 4, 0>
}
cone {
<0, 0, 0>, 1,
<0, 4, 0>, 1
}
sphere {
<0, 0, 0>, 1.2
}
rotate <-RK1, 0, 0>
translate <0, 5, 0>
}
cone {
<0, 0, 0>, 1,
<0, 5, 0>, 1
}
sphere {
<0, 0, 0>, 1.2
}
rotate <-RK0x, 0, 0>
rotate <0, 0, RK0z>
}
#declare hand =
union {
object { handflaeche }
object {
daumen
translate <5, 0, 0>
}
object {
zeigefinger
translate <3.6, 14, 0>
}
object {
mittelfinger
translate <1.2, 15, 0>
}
object {
ringfinger
translate <-1.2, 14, 0>
}
object {
kleinerfinger
translate <-3.6, 13, 0>
}
texture { T_metall_schwarz }
scale 0.01 // centimeters to meters
}