Keishiro Ueki - 30 may 2021
- Author:
- Thijs
- Topic:
- Constructions
Based on 上木 敬士郎 Keishiro Ueki @ChocoLinkage - 30 may 2021
Setup Scripting
Delete(n)
Delete(t)
Delete(f)
Delete(A)
Delete(B)
#-----------------------------------------------
# Objects
#-----------------------------------------------
n = 9
f(t)= t^3*(6*t^2-15*t+10)
t = Slider(0,1,0.005, 3, 180, false, true, true)
α = f(t) * 120°
A = (0,0)
B = (2,0)
C = (2+cos(α), sin(α))
B1= Reflect(B, Line(A,C))
A1= Dilate(B1, 3, C)
D = Midpoint(C ,2*C)
E = Dilate(D, 1.5,C)
β = Angle(A, 2*C, A1)
LA= Zip(Rotate(A, k*β, 2*C), k, 0…(n-1))
LB= Zip(Rotate(B, k*β, 2*C), k, 1…n)
LC= Zip(Rotate(C, k*β, 2*C), k, 0…n)
LD= Zip(Rotate(D, k*β, 2*C), k, 1…(n-1))
LE= Zip(Rotate(E, k*β, 2*C), k, 2…(n-2))
AB = Segment(A,B)
BC = Segment(B,C)
LAC1= Zip(Segment(A,C), A,LA, C,Last(LC,n))
LAC2= Zip(Segment(A,C), A,Last(LA,n-1), C,First(LC,n-1))
BCn = Segment(Element(LB, n), Element(LC, n))
LCD1= Zip(Segment(C, D), C,First(LC, n-1), D,LD)
LCD2= Zip(Segment(C, D), C,Last( LC, n-1), D,LD)
LDE1= Zip(Segment(D, E), D,First(LD, n-3), E,LE)
LDE2= Zip(Segment(D, E), D,Last( LD, n-3), E,LE)
#-----------------------------------------------
# Settings
#-----------------------------------------------
Lobj={"f","t","A","C","B1","A1","D","E","β"}
Execute(zip("SetVisibleInView("+obj+", 1, false)", obj,Lobj))
Lobj={"B","AB","BC","BCn"}
Execute(zip("ShowLabel("+obj+", false)", obj,Lobj))
Lobj={"B","LA","LB","LC","LD","LE"}
Execute(Zip("SetPointSize("+obj+", 4)", obj,Lobj))
Execute(zip("SetDynamicColor("+obj+", 0,0,0)", obj,Lobj))
Execute(zip("SetLayer("+obj+", 1)", obj,Lobj))
Lobj={"AB","BC","LAC1","LAC2","BCn"}
Execute(zip("SetDynamicColor("+obj+", 1,0,0)", obj,Lobj))
SetColor(LCD1,"DarkGreen")
SetColor(LCD2,"DarkGreen")
SetColor(LDE1,"Blue")
SetColor(LDE2,"Blue")
Lobj={"AB","BC","LAC1","LAC2","BCn","LCD1","LCD2","LDE1","LDE2"}
Execute(zip("SetLayer("+obj+", 0)", obj,Lobj))
Delete(Lobj)
ShowGrid( false )
ShowAxes( false )
CenterView((5,2))
StartAnimation[t,true]