3d/pr/sol/ringwulst.pov

147 lines
2.2 KiB
POVRay

/* Parameter:
* R1, R2: Durchmesser des Torus
*/
#declare Hangars_Ringwulst_neg =
difference {
union {
#declare i = 10
#declare ii = 10
#while (i < 360)
union {
box {
<-50, 40, 0>
< 50, 80, R1+R2>
}
box {
<-50, 120, 0>
< 50, 220, R1+R2>
}
box {
<-50, -40, 0>
< 50, -80, R1+R2>
}
box {
<-50, -120, 0>
< 50, -220, R1+R2>
}
rotate <0, i, 0>
}
#declare i = i + ii
#declare ii = 30 - ii
#end
}
torus {
R1, R2-10
}
texture {
Ynkelonium_Texture
}
}
#declare Geschuetze_Ringwulst_aussen =
union {
#declare w = -45
#while (w <= 45)
#declare i = 10
#declare ii = 10
#while (i < 360)
union {
sphere {
<0, 0, 0> 20
}
cone {
<0, 0, 0> 10
<30, 30, 0> 5
}
cone {
<0, 0, 0> 10
<30, -30, 0> 5
}
translate <R2, 0, 0>
rotate <0, 0, w>
translate <R1, 0, 0>
rotate <0, i, 0>
}
#declare i = i + ii
#declare ii = 30 - ii
#end
#declare w = w + 90
#end
texture {
Ynkelonium_Texture
}
}
#declare Geschuetze_Ringwulst_mitte =
union {
#declare w = 0
#while (w <= 0)
#declare i = 0
#while (i < 360)
union {
sphere {
<0, 0, 0> 20
}
cone {
<0, 0, 0> 10
<30, 30, 0> 5
}
cone {
<0, 0, 0> 10
<30, -30, 0> 5
}
translate <R2, 0, 0>
rotate <0, 0, w>
translate <R1, 0, 0>
rotate <0, i, 0>
}
#declare i = i + 10
#end
#declare w = w + 90
#end
texture {
Ynkelonium_Texture
}
}
#declare Ringwulst =
union {
difference {
torus {
R1, R2
}
#declare i = 0
#while (i < 360)
object {
Triebwerk_neg
rotate <0, 0, 45>
translate <R1, 0, 0>
rotate <0, i, 0>
}
object {
Triebwerk_neg
rotate <0, 0, -45>
translate <R1, 0, 0>
rotate <0, i, 0>
}
#declare i = i + 30
#end
object {Hangars_Ringwulst_neg}
}
cone {
<0, -R2, 0>, R1,
<0, R2, 0>, R1
}
object {Geschuetze_Ringwulst_aussen}
object {Geschuetze_Ringwulst_mitte}
texture {
Ynkelonium_Texture
}
}