HexaCone/elements.inc

92 lines
1.7 KiB
PHP
Raw Normal View History

2024-12-16 03:53:42 +11:00
/*
* nouveau projet Thu Dec 5 11:37:05 AM UTC 2024
*/
#declare HexaCone_shape = object
{
#local RA = 0.125;
#local RB = 0.001;
union {
cone { 0, RA, <-1, 0, 0>, RB }
cone { 0, RA, < 1, 0, 0>, RB }
cone { 0, RA, < 0, 0, 1>, RB }
cone { 0, RA, < 0, 0, -1>, RB }
cone { 0, RA, < 0, 1, 0>, RB }
cone { 0, RA, < 0, -1, 0>, RB }
}
}
#declare HexaCone_body = object
{
union {
difference {
object { HexaCone_shape }
object { HexaCone_shape scale 0.99 }
sphere {0, 0.24 }
cylinder { <-1, 0, 0.55>, <1, 0, 0.55>,
RA*0.40 }
}
difference {
sphere {0, 0.20 }
sphere {0, 0.18 }
cylinder {-x, x, 0.10 }
cylinder {-y, y, 0.10 }
cylinder {-z, z, 0.10 }
}
light_source { 0, rgb <0.99, 0.05, 0.05> }
}
texture { New_Penny }
}
/*
*
*/
#declare HexaCone_radar = object
{
union {
#for (foo, 0, 360, 60)
2024-12-16 08:24:38 +11:00
#local RR = 0.17;
2024-12-16 03:53:42 +11:00
#local PX = RR * sin(radians(foo));
#local PZ = RR * cos(radians(foo));
2024-12-16 08:24:38 +11:00
sphere { 0, 0.009
scale <1, 1.39, 1>
translate <PX, 0.007, PZ>
2024-12-16 03:53:42 +11:00
}
2024-12-16 08:24:38 +11:00
#local R2 = 0.08;
#local PX2 = R2 * sin(radians(foo));
#local PZ2 = R2 * cos(radians(foo));
cylinder { <PX2, -0.06, PZ2>, <PX, 0, PZ>*0.98, 0.003 }
2024-12-16 03:53:42 +11:00
#end
2024-12-16 08:24:38 +11:00
torus { R2, 0.004 translate -0.06*y }
2024-12-16 03:53:42 +11:00
}
2024-12-16 08:24:38 +11:00
texture { Soft_Silver scale 1.0 }
2024-12-16 03:53:42 +11:00
}
#declare HexaCone_head = object
{
#local DTa = 0.278;
#local DTb = 0.030;
merge {
difference {
torus { DTa, DTb }
#local TB = 0.50;
box { <-TB, -TB, TB>, <TB, TB, 0> }
}
sphere { 0, DTb*1.55 translate -DTa*x }
sphere { 0, DTb*1.55 translate DTa*x }
}
texture { Orange_Glass }
}
#declare HexaCone = object
{
union {
object { HexaCone_body }
#local T = 0.55;
object { HexaCone_head translate <0, 0, T+DTa> }
object { HexaCone_radar translate <0, T+0.07, 0> }
}
rotate <-7, 0, -9>
}