Expression 22: "t" Subscript, "o" "t" "p" "t" , Baseline left parenthesis, "x" , right parenthesis equals left parenthesis, total left parenthesis, "x" . "x" , right parenthesis , total left parenthesis, "x" . "y" , right parenthesis , right parenthesistotptx=totalx.x,totalx.y
22
Velocity should first check for the new velocity
23
Expression 24:
24
Runs pretty gosh darn fast.
25
Expression 26:
26
Expression 27: "P" Subscript, "t" "s" , Baseline plus "R" times left parenthesis, cos left parenthesis, tau "t" , right parenthesis , sin left parenthesis, tau "t" , right parenthesis , right parenthesisPts+R·cosτt,sinτt
00
domain t Minimum:
less than or equal to "t" less than or equal to≤t≤
11
domain t Maximum:
27
Find the closest two points. This is the max radius
28
Expression 29: "m" Subscript, "i" "n" "r" "a" "d" , Baseline equals left brace, total left parenthesis, StartAbsoluteValue, "d" Subscript, "i" "f" "f" "s" "i" "g" "n" "s" , Baseline , EndAbsoluteValue , right parenthesis equals 0 : 5 , 2 thirds min left parenthesis, "f" Subscript, "i" "l" "t" "e" "r" , Baseline left parenthesis, "M" Subscript, "a" "g" , Baseline left parenthesis, "P" Subscript, "t" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline plus 1 , right bracket minus "P" Subscript, "t" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket , right parenthesis , StartAbsoluteValue, "d" Subscript, "i" "f" "f" "s" "i" "g" "n" "s" , Baseline , EndAbsoluteValue , right parenthesis , right parenthesis , right braceminrad=totaldiffsigns=0:5,23minfilterMagPtsl1+1−Ptsl1,diffsigns
equals=
6.1 6 4 4 3 9 3 0 9 1 16.16443930911
29
Simulation stuff
Hide this folder from students.
30
Expression 34: "s" Subscript, "t" "r" "a" "i" "g" "h" "t" "a" "w" "a" "y" "s" , Baseline left parenthesis, "t" , right parenthesis equals left brace, StartAbsoluteValue, "d" Subscript, "i" "f" "f" "s" "i" "g" "n" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket , EndAbsoluteValue greater than 0 : "P" Subscript, "t" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket plus 0.7 5 "R" times left parenthesis, cos left parenthesis, "A" Subscript, "n" "g" "l" "e" "s" , Baseline plus "d" Subscript, "i" "f" "f" "s" "i" "g" "n" "s" , Baseline left parenthesis, "a" Subscript, "o" "f" "f" "s" "e" "t" , Baseline minus StartFraction, pi Over 2 , EndFraction , right parenthesis , right parenthesis , sin left parenthesis, "A" Subscript, "n" "g" "l" "e" "s" , Baseline plus "d" Subscript, "i" "f" "f" "s" "i" "g" "n" "s" , Baseline left parenthesis, "a" Subscript, "o" "f" "f" "s" "e" "t" , Baseline minus StartFraction, pi Over 2 , EndFraction , right parenthesis , right parenthesis , right parenthesis left bracket, "l" Subscript, 1 , Baseline , right bracket plus left parenthesis, StartAbsoluteValue, "d" Subscript, "i" "f" "f" "s" "i" "g" "n" "s" , Baseline , EndAbsoluteValue StartRoot, "M" Subscript, "a" "g" , Baseline left parenthesis, "d" Subscript, "i" "f" "f" "s" , Baseline , right parenthesis squared minus 9 quarters "R" squared , EndRoot "t" times left parenthesis, cos left parenthesis, "A" Subscript, "n" "g" "l" "e" "s" , Baseline plus "d" Subscript, "i" "f" "f" "s" "i" "g" "n" "s" , Baseline "a" Subscript, "o" "f" "f" "s" "e" "t" , Baseline , right parenthesis , sin left parenthesis, "A" Subscript, "n" "g" "l" "e" "s" , Baseline plus "d" Subscript, "i" "f" "f" "s" "i" "g" "n" "s" , Baseline "a" Subscript, "o" "f" "f" "s" "e" "t" , Baseline , right parenthesis , right parenthesis , right parenthesis left bracket, "l" Subscript, 1 , Baseline , right bracket , "P" Subscript, "t" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket plus "s" Subscript, "i" "g" "n" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket times 0.7 5 "R" StartFraction, "P" Subscript, "e" "r" "p" , Baseline left parenthesis, "d" Subscript, "i" "f" "f" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket , right parenthesis Over "M" Subscript, "a" "g" , Baseline left parenthesis, "P" Subscript, "e" "r" "p" , Baseline left parenthesis, "d" Subscript, "i" "f" "f" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket , right parenthesis , right parenthesis , EndFraction plus "t" "d" Subscript, "i" "f" "f" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket , right bracestraightawayst=diffsignsl1>0:Ptsl1+0.75R·cosAngles+diffsignsaoffset−π2,sinAngles+diffsignsaoffset−π2l1+diffsignsMagdiffs2−94R2t·cosAngles+diffsignsaoffset,sinAngles+diffsignsaoffsetl1,Ptsl1+signsl1·0.75RPerpdiffsl1MagPerpdiffsl1+tdiffsl1
34
Expression 35: "c" Subscript, "u" "r" "v" "e" "s" , Baseline left parenthesis, "t" , right parenthesis equals left parenthesis, "P" Subscript, "t" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline plus 1 , right bracket plus 0.7 5 times "R" times left parenthesis, cos left parenthesis, "p" Subscript, "a" "n" "g" "l" "e" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket plus pi StartAbsoluteValue, "d" Subscript, "i" "f" "f" "s" "i" "g" "n" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket , EndAbsoluteValue minus StartAbsoluteValue, "a" Subscript, "e" "l" "b" "o" "w" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket , EndAbsoluteValue "s" Subscript, "i" "g" "n" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline plus 1 , right bracket times "t" , right parenthesis , sin left parenthesis, "p" Subscript, "a" "n" "g" "l" "e" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket plus pi StartAbsoluteValue, "d" Subscript, "i" "f" "f" "s" "i" "g" "n" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket , EndAbsoluteValue minus StartAbsoluteValue, "a" Subscript, "e" "l" "b" "o" "w" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket , EndAbsoluteValue "s" Subscript, "i" "g" "n" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline plus 1 , right bracket times "t" , right parenthesis , right parenthesis , right parenthesiscurvest=Ptsl1+1+0.75·R·cospanglel1+πdiffsignsl1−aelbowsl1signsl1+1·t,sinpanglel1+πdiffsignsl1−aelbowsl1signsl1+1·t
35
Expression 36: "m" Subscript, "a" "i" "n" "c" "u" "r" "v" "e" , Baseline left parenthesis, "t" , right parenthesis equals left brace, mod left parenthesis, floor left parenthesis, 2 "N" "t" , right parenthesis , 2 , right parenthesis equals 1 : "c" Subscript, "u" "r" "v" "e" "s" , Baseline left parenthesis, mod left parenthesis, 2 "N" "t" , 1 , right parenthesis , right parenthesis left bracket, floor left parenthesis, "N" "t" , right parenthesis plus 1 , right bracket , "s" Subscript, "t" "r" "a" "i" "g" "h" "t" "a" "w" "a" "y" "s" , Baseline left parenthesis, mod left parenthesis, 2 "N" "t" , 1 , right parenthesis , right parenthesis left bracket, floor left parenthesis, "N" "t" , right parenthesis plus 1 , right bracket , right bracemaincurvet=modfloor2Nt,2=1:curvesmod2Nt,1floorNt+1,straightawaysmod2Nt,1floorNt+1
36
Expression 37: "p" Subscript, "a" "l" "l" , Baseline left parenthesis, "t" , right parenthesis equals mod left parenthesis, floor left parenthesis, 2 "N" "t" , right parenthesis , 2 , right parenthesis "p" Subscript, "c" "u" "r" "v" "e" "s" , Baseline left parenthesis, mod left parenthesis, 2 "N" "t" , 1 , right parenthesis , right parenthesis left bracket, floor left parenthesis, "N" "t" , right parenthesis plus 1 , right bracket plus left parenthesis, 1 minus mod left parenthesis, floor left parenthesis, 2 "N" "t" , right parenthesis , 2 , right parenthesis , right parenthesis "p" Subscript, "s" "t" "r" "a" "i" "g" "h" "t" "a" "w" "a" "y" "s" , Baseline left parenthesis, mod left parenthesis, 2 "N" "t" , 1 , right parenthesis , right parenthesis left bracket, floor left parenthesis, "N" "t" , right parenthesis plus 1 , right bracketpallt=modfloor2Nt,2pcurvesmod2Nt,1floorNt+1+1−modfloor2Nt,2pstraightawaysmod2Nt,1floorNt+1
37
So pcurves is always on the outside of each circle we pass, regardless of if it is left or right. We need it to rely on the sign of the circle, I think. straightaways are also all on the outside relative to the last circle passed. So what do we do?
38
Expression 39: "p" Subscript, "c" "u" "r" "v" "e" "s" , Baseline left parenthesis, "t" , right parenthesis equals 1 third "s" Subscript, "i" "g" "n" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline plus 1 , right bracket left parenthesis, 0.7 5 times "R" times left parenthesis, cos left parenthesis, "p" Subscript, "a" "n" "g" "l" "e" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket plus pi StartAbsoluteValue, "d" Subscript, "i" "f" "f" "s" "i" "g" "n" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket , EndAbsoluteValue minus StartAbsoluteValue, "a" Subscript, "e" "l" "b" "o" "w" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket , EndAbsoluteValue "s" Subscript, "i" "g" "n" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline plus 1 , right bracket times "t" , right parenthesis , sin left parenthesis, "p" Subscript, "a" "n" "g" "l" "e" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket plus pi StartAbsoluteValue, "d" Subscript, "i" "f" "f" "s" "i" "g" "n" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket , EndAbsoluteValue minus StartAbsoluteValue, "a" Subscript, "e" "l" "b" "o" "w" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket , EndAbsoluteValue "s" Subscript, "i" "g" "n" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline plus 1 , right bracket times "t" , right parenthesis , right parenthesis , right parenthesispcurvest=13signsl1+10.75·R·cospanglel1+πdiffsignsl1−aelbowsl1signsl1+1·t,sinpanglel1+πdiffsignsl1−aelbowsl1signsl1+1·t
39
Expression 40: "p" Subscript, "s" "t" "r" "a" "i" "g" "h" "t" "a" "w" "a" "y" "s" , Baseline left parenthesis, "t" , right parenthesis equals 1 third "s" Subscript, "i" "g" "n" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket left brace, StartAbsoluteValue, "d" Subscript, "i" "f" "f" "s" "i" "g" "n" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket , EndAbsoluteValue greater than 0 : 0.7 5 "R" times left parenthesis, cos left parenthesis, "A" Subscript, "n" "g" "l" "e" "s" , Baseline plus "d" Subscript, "i" "f" "f" "s" "i" "g" "n" "s" , Baseline left parenthesis, "a" Subscript, "o" "f" "f" "s" "e" "t" , Baseline minus StartFraction, pi Over 2 , EndFraction , right parenthesis , right parenthesis , sin left parenthesis, "A" Subscript, "n" "g" "l" "e" "s" , Baseline plus "d" Subscript, "i" "f" "f" "s" "i" "g" "n" "s" , Baseline left parenthesis, "a" Subscript, "o" "f" "f" "s" "e" "t" , Baseline minus StartFraction, pi Over 2 , EndFraction , right parenthesis , right parenthesis , right parenthesis left bracket, "l" Subscript, 1 , Baseline , right bracket , "s" Subscript, "i" "g" "n" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket times 0.7 5 "R" StartFraction, "P" Subscript, "e" "r" "p" , Baseline left parenthesis, "d" Subscript, "i" "f" "f" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket , right parenthesis Over "M" Subscript, "a" "g" , Baseline left parenthesis, "P" Subscript, "e" "r" "p" , Baseline left parenthesis, "d" Subscript, "i" "f" "f" "s" , Baseline left bracket, "l" Subscript, 1 , Baseline , right bracket , right parenthesis , right parenthesis , EndFraction , right bracepstraightawayst=13signsl1diffsignsl1>0:0.75R·cosAngles+diffsignsaoffset−π2,sinAngles+diffsignsaoffset−π2l1,signsl1·0.75RPerpdiffsl1MagPerpdiffsl1
40
Ok we're golden
41
TODO: Slap stuff together in order! Combine the straight segments first
42
Expression 43: "A" Subscript, "d" "i" "f" "f" , Baseline left parenthesis, "A" , "B" , "s" Subscript, "i" "g" "n" , Baseline , right parenthesis equals left brace, "s" Subscript, "i" "g" "n" , Baseline equals 1 : left brace, mod left parenthesis, "B" , tau , right parenthesis greater than mod left parenthesis, "A" , tau , right parenthesis : mod left parenthesis, "B" , tau , right parenthesis minus mod left parenthesis, "A" , tau , right parenthesis , tau minus mod left parenthesis, "A" , tau , right parenthesis plus mod left parenthesis, "B" , tau , right parenthesis , right brace , left brace, mod left parenthesis, "A" , tau , right parenthesis greater than mod left parenthesis, "B" , tau , right parenthesis : mod left parenthesis, "A" , tau , right parenthesis minus mod left parenthesis, "B" , tau , right parenthesis , tau minus mod left parenthesis, "B" , tau , right parenthesis plus mod left parenthesis, "A" , tau , right parenthesis , right brace , right braceAdiffA,B,sign=sign=1:modB,τ>modA,τ:modB,τ−modA,τ,τ−modA,τ+modB,τ,modA,τ>modB,τ:modA,τ−modB,τ,τ−modB,τ+modA,τ