Nex63 (6,3) - Struts
Setup
#==========================================================
# Show half Nexorade Nex63 (6,3) with extendable structs
#----------------------------------------------------------
# Needed : LsFree strut-points : list dimension (5,2)
#==========================================================
LsFree={{(0.9028227, 0.429203232, -0.026377226), (0.777630478, 0.53287731, 0.333665419)}, {(0.723217347, 0.686653164, 0.073919557), (0.777455833, 0.436082585, 0.453204597)}, {(0.759407269, 0.617064763, 0.206232097), (0.460247935, 0.684987742, 0.564768653)}, {(0.575285318, 0.679245108, 0.455711406), (0.850363088, 0.296424652, 0.434758605)}, {(0.917209785, 0.265881844, 0.296703648), (0.656412626, 0.335188432, 0.675848488)}}
#==========================================================
# Sphere and Half sphere (for testing placements of struts)
#==========================================================
O = (0,0,0)
r = Slider(0.96, 1.04, 0.001, 1, 100, false)
SetValue(r,0.96)
Sph = Sphere(O,r)
α = Angle(Line(O,(0,0,1)), Line(O,(1,1,1)))
hSph = Rotate(Surface((r;a;b), a,0,360°, b,0°,90°), α,Line(O,(-1,1,0)))
#======================================
# Create a list of 30 symmetry matrices
#======================================
ζ = Angle(Line((0,0,0),((1+sqrt(5))/2,1,0)),xAxis)
SetConditionToShowObject(ζ,false)
Mζ = {{cos(ζ),-sin(ζ),0},{sin(ζ),cos(ζ),0},{0,0,1}}
Lα = {1,2,3}*72°
LA3 = Zip(Mζ*{{1,0,0},{0,cos(α),-sin(α)},{0,sin(α),cos(α)}}*Invert(Mζ),α,Lα)
LM3 = {{{1,0,0},{0,1,0},{0,0,1}},{{0,0,1},{1,0,0},{0,1,0}},{{0,1,0},{0,0,1},{1,0,0}}}
LM9 = Join(Zip(LM3*M, M, LA3))
LM30= Join(LM3,Join(Zip(LM9*M, M, LM3)))
#========================================================
# Show half sphere of extendable structs
#========================================================
fact=Slider(1, 1.2, 0.01, 1, 100, false)
SetValue(fact,1.1)
LR = LsFree(1)
LG = LsFree(2)
LB = LsFree(3)
LC = LsFree(4)
LY = LsFree(5)
Rseg = Segment(Dilate(LR(1),fact,LR(2)),Dilate(LR(2),fact,LR(1)))
Gseg = Segment(Dilate(LG(1),fact,LG(2)),Dilate(LG(2),fact,LG(1)))
Bseg = Segment(Dilate(LB(1),fact,LB(2)),Dilate(LB(2),fact,LB(1)))
Cseg = Segment(Dilate(LC(1),fact,LC(2)),Dilate(LC(2),fact,LC(1)))
Yseg = Segment(Dilate(LY(1),fact,LY(2)),Dilate(LY(2),fact,LY(1)))
Rs30 = Zip(ApplyMatrix(M, Rseg), M, LM30)
Gs30 = Zip(ApplyMatrix(M, Gseg), M, LM30)
Bs30 = Zip(ApplyMatrix(M, Bseg), M, LM30)
Cs30 = Zip(ApplyMatrix(M, Cseg), M, LM30)
Ys30 = Zip(ApplyMatrix(M, Yseg), M, LM30)
#========================================================
# Settings
#========================================================
SetActiveView(-1)
SetBackgroundColor("#202020")
ShowAxes(false)
ShowGrid(false)
CenterView(O)
SetActiveView(1)
ShowAxes(false)
ShowGrid(false)
CenterView(O)
#========================================================
# Properties
#========================================================
List={"O","α","LR","LG","LB","LC","LY","Rseg","Gseg","Bseg","Cseg","Yseg"}
Execute(Zip("SetConditionToShowObject("+obj+",false)", obj,List))
SetColor(Sph,"White")
SetColor(hSph,"White")
SetFilling(Sph,1)
SetFilling(hSph,1)
SetLineThickness(hSph,0)
onHalf=Checkbox("Half Sphere")
SetValue(onHalf,false)
SetConditionToShowObject(Sph,!onHalf)
SetConditionToShowObject(hSph,onHalf)
SetColor(Rs30,"Red")
SetColor(Gs30,"Green")
SetColor(Bs30,"Blue")
SetColor(Cs30,"Cyan")
SetColor(Ys30,"Yellow")
Setcoords(r,30,40)
Setcoords(fact,160,40)
Setcoords(onHalf,310,11)
Delete(List)