{"version":9,"randomSeed":"fb25b5bc3ec19106b2ebcde2510cdb4d","graph":{"viewport":{"xmin":-10,"ymin":-9.846298473516923,"xmax":10,"ymax":9.846298473516926}},"expressions":{"list":[{"type":"text","id":"2","text":"inspired by \"The Beauty of Bézier Curves\" by Freya Holmér (2021) https://www.youtube.com/watch?v=aVwxzDHniEw"},{"type":"folder","id":"28","title":"colours","collapsed":true},{"type":"expression","id":"29","folderId":"28","color":"#000000","latex":"H_{A}=\\left[\\operatorname{hsv}\\left(0,1,1\\right)\\right]","labelSize":"medium"},{"type":"expression","id":"30","folderId":"28","color":"#c74440","latex":"H_{B}=\\left[\\operatorname{hsv}\\left(40,1,1\\right)\\right]"},{"type":"expression","id":"31","folderId":"28","color":"#2d70b3","latex":"H_{C}=\\left[\\operatorname{hsv}\\left(100,1,1\\right)\\right]"},{"type":"expression","id":"32","folderId":"28","color":"#388c46","latex":"H_{D}=\\left[\\operatorname{hsv}\\left(200,1,1\\right)\\right]"},{"type":"expression","id":"43","folderId":"28","color":"#6042a6","latex":"H_{G}=\\operatorname{rgb}\\left(100,100,100\\right)"},{"type":"expression","id":"56","folderId":"28","color":"#6042a6","latex":"H_{S}=\\operatorname{rgb}\\left(180,180,180\\right)"},{"type":"expression","id":"40","folderId":"28","color":"#c74440","latex":"H_{W}=\\operatorname{rgb}\\left(255,255,255\\right)"},{"type":"expression","id":"41","folderId":"28","color":"#2d70b3","latex":"W_{L}=10","labelSize":"medium"},{"type":"expression","id":"39","folderId":"28","color":"#000000","latex":"x\\le x+1","lines":false,"fillOpacity":"1"},{"type":"folder","id":"5","title":"control points","collapsed":true},{"type":"expression","id":"42","folderId":"5","color":"#388c46","latex":"\\left[A,B\\right]","points":false,"lines":true,"dragMode":"NONE","colorLatex":"H_{G}","lineOpacity":"1","lineWidth":"W_{L}"},{"type":"expression","id":"6","folderId":"5","color":"#c74440","latex":"A=\\left(4.92,1.4\\right)","colorLatex":"H_{A}"},{"type":"expression","id":"7","folderId":"5","color":"#fa7e19","latex":"B=\\left(-6.8,6.48\\right)","colorLatex":"H_{B}"},{"type":"expression","id":"44","folderId":"5","color":"#000000","latex":"\\left[C,D\\right]","points":false,"lines":true,"dragMode":"NONE","colorLatex":"H_{G}","lineOpacity":"1","lineWidth":"W_{L}"},{"type":"expression","id":"8","folderId":"5","color":"#388c46","latex":"C=\\left(-5.77,-6.42\\right)","colorLatex":"H_{C}"},{"type":"expression","id":"9","folderId":"5","color":"#6042a6","latex":"D=\\left(-0.08,-1.18\\right)","colorLatex":"H_{D}"},{"type":"text","id":"14","text":"controllable time parameter"},{"type":"expression","id":"15","color":"#c74440","latex":"T=0.854","slider":{"hardMin":true,"hardMax":true,"isPlaying":true,"min":"0","max":"1"}},{"type":"text","id":"17","text":"weight-vector at a given time"},{"type":"expression","id":"10","color":"#388c46","latex":"W\\left(t\\right)=\\left[-t^{3}+3t^{2}-3t+1,3t^{3}-6t^{2}+3t,-3t^{3}+3t^{2},t^{3}\\right]\\left\\{0\\le t\\le1\\right\\}","hidden":true,"labelSize":"medium"},{"type":"text","id":"21","text":"the curve"},{"type":"expression","id":"19","color":"#000000","latex":"F\\left(t\\right)=A\\cdot W\\left(t\\right)\\left[1\\right]+B\\cdot W\\left(t\\right)\\left[2\\right]+C\\cdot W\\left(t\\right)\\left[3\\right]+D\\cdot W\\left(t\\right)\\left[4\\right]","labelSize":"medium","colorLatex":"H_{W}","lineOpacity":"1","lineWidth":"W_{L}"},{"type":"expression","id":"45","color":"#c74440","latex":"F\\left(t\\right)","colorLatex":"H_{W}","lineOpacity":"1","lineWidth":"W_{L}"},{"type":"folder","id":"51","title":"weight-vector summation component thing (5:54)","hidden":true,"collapsed":true},{"type":"expression","id":"26","folderId":"51","color":"#000000","latex":"\\operatorname{polygon}\\left(\\left[\\left(0,0\\right),A\\cdot W\\left(T\\right)\\left[1\\right]\\right]\\right)","lines":true,"labelSize":"medium","colorLatex":"H_{A}","lineOpacity":"1","lineWidth":"W_{L}"},{"type":"expression","id":"33","folderId":"51","color":"#6042a6","latex":"\\operatorname{polygon}\\left(A\\cdot W\\left(T\\right)\\left[1\\right]+\\left[\\left(0,0\\right),B\\cdot W\\left(T\\right)\\left[2\\right]\\right]\\right)","lines":true,"colorLatex":"H_{B}","lineOpacity":"1","lineWidth":"W_{L}"},{"type":"expression","id":"34","folderId":"51","color":"#000000","latex":"\\operatorname{polygon}\\left(A\\cdot W\\left(T\\right)\\left[1\\right]+B\\cdot W\\left(T\\right)\\left[2\\right]+\\left[\\left(0,0\\right),C\\cdot W\\left(T\\right)\\left[3\\right]\\right]\\right)","lines":true,"colorLatex":"H_{C}","lineOpacity":"1","lineWidth":"W_{L}"},{"type":"expression","id":"35","folderId":"51","color":"#c74440","latex":"\\operatorname{polygon}\\left(A\\cdot W\\left(T\\right)\\left[1\\right]+B\\cdot W\\left(T\\right)\\left[2\\right]+C\\cdot W\\left(T\\right)\\left[3\\right]+\\left[\\left(0,0\\right),D\\cdot W\\left(T\\right)\\left[4\\right]\\right]\\right)","lines":true,"colorLatex":"H_{D}","lineOpacity":"1","lineWidth":"W_{L}"},{"type":"folder","id":"54","title":"derivative (6:37)","hidden":true,"collapsed":true},{"type":"expression","id":"48","folderId":"54","color":"#388c46","latex":"\\operatorname{polygon}\\left(F\\left(T\\right),F\\left(T\\right)+0.1F'\\left(T\\right)\\right)","colorLatex":"H_{A}","lineOpacity":"1","lineWidth":"W_{L}"},{"type":"expression","id":"55","folderId":"54","color":"#388c46","latex":"F'\\left(t\\right)","colorLatex":"H_{B}","lineOpacity":"1","lineWidth":"W_{L}"},{"type":"expression","id":"57","folderId":"54","color":"#000000","latex":"\\operatorname{polygon}\\left(\\left(0,0\\right),F'\\left(T\\right)\\right)","colorLatex":"H_{C}","lineOpacity":"1","lineWidth":"W_{L}"},{"type":"folder","id":"59","title":"applications of derivative: tangent, normal, and offset curves (7:34)","hidden":true,"collapsed":true},{"type":"expression","id":"60","folderId":"59","color":"#2d70b3","latex":"\\operatorname{polygon}\\left(F\\left(T\\right),F\\left(T\\right)+\\frac{F'\\left(T\\right)}{\\operatorname{distance}\\left(\\left(0,0\\right),F'\\left(T\\right)\\right)}\\right)","colorLatex":"H_{A}","lineOpacity":"1","lineWidth":"W_{L}"},{"type":"expression","id":"62","folderId":"59","color":"#2d70b3","latex":"\\operatorname{polygon}\\left(F\\left(T\\right),F\\left(T\\right)+\\frac{\\left(-F'\\left(T\\right).y,F'\\left(T\\right).x\\right)}{\\operatorname{distance}\\left(\\left(0,0\\right),F'\\left(T\\right)\\right)}\\right)","colorLatex":"H_{C}","lineOpacity":"1","lineWidth":"W_{L}"},{"type":"expression","id":"63","folderId":"59","color":"#6042a6","latex":"F\\left(t\\right)+\\left[-\\frac{1}{2},\\frac{1}{2}\\right]\\cdot\\frac{\\left(-F'\\left(t\\right).y,F'\\left(t\\right).x\\right)}{\\operatorname{distance}\\left(\\left(0,0\\right),F'\\left(t\\right)\\right)}","colorLatex":"H_{S}","lineOpacity":"1","lineWidth":"W_{L}"},{"type":"folder","id":"65","title":"curvature by derivatives (10:18)","hidden":true,"collapsed":true},{"type":"expression","id":"66","folderId":"65","color":"#c74440","latex":"K\\left(t\\right)=\\frac{F'\\left(t\\right).x\\cdot F''\\left(t\\right).y-F'\\left(t\\right).y\\cdot F''\\left(t\\right).x}{\\operatorname{distance}\\left(\\left(0,0\\right),F'\\left(t\\right)\\right)^{3}}","hidden":true},{"type":"expression","id":"67","folderId":"65","color":"#2d70b3","latex":"\\operatorname{distance}\\left(F\\left(T\\right)+\\frac{1}{K\\left(T\\right)\\operatorname{distance}\\left(\\left(0,0\\right),F'\\left(T\\right)\\right)}\\cdot\\left(-F'\\left(T\\right).y,F'\\left(T\\right).x\\right),\\left(x,y\\right)\\right)=\\frac{1}{\\left|K\\left(T\\right)\\right|}","labelSize":"medium","colorLatex":"H_{S}","lineOpacity":"1","lineWidth":"W_{L}"},{"type":"expression","id":"72","folderId":"65","color":"#2d70b3","latex":"N_{K}=50","slider":{"hardMin":true,"hardMax":true,"min":"1","max":"100","step":"1"}},{"type":"expression","id":"71","folderId":"65","color":"#c74440","latex":"C_{K}=\\left[\\operatorname{hsv}\\left(100+50K\\left(s\\right),1,1\\right)\\operatorname{for}s=\\left[0,\\frac{1}{N_{K}},...1\\right]\\right]"},{"type":"expression","id":"69","folderId":"65","color":"#6042a6","latex":"\\left[F\\left(s\\right)\\operatorname{for}s=\\left[0,\\frac{1}{N_{K}},...1\\right]\\right]","labelSize":"medium","colorLatex":"C_{K}"},{"type":"folder","id":"76","title":"bounding-box points by extreme along axes (11:48)","hidden":true,"collapsed":true},{"type":"text","id":"87","folderId":"76","text":"there's totally a way to compute these exactly, but i'm lazy and chose to apply Newton's method instead"},{"type":"expression","id":"80","folderId":"76","color":"#6042a6","latex":"N_{Sx}\\left(a\\right)=a-\\frac{F'\\left(a\\right).x}{F''\\left(a\\right).x}","hidden":true},{"type":"expression","id":"81","folderId":"76","color":"#c74440","latex":"N_{Sy}\\left(a\\right)=a-\\frac{F'\\left(a\\right).y}{F''\\left(a\\right).y}","hidden":true},{"type":"expression","id":"82","folderId":"76","color":"#c74440","latex":"F\\left(N_{Sx}\\left(N_{Sx}\\left(0.25\\right)\\right)\\right)","colorLatex":"H_{A}","pointOpacity":"1","pointSize":"W_{L}"},{"type":"expression","id":"84","folderId":"76","color":"#c74440","latex":"F\\left(N_{Sx}\\left(N_{Sx}\\left(0.75\\right)\\right)\\right)","colorLatex":"H_{A}","pointOpacity":"1","pointSize":"W_{L}"},{"type":"expression","id":"83","folderId":"76","color":"#2d70b3","latex":"F\\left(N_{Sy}\\left(N_{Sy}\\left(0.25\\right)\\right)\\right)","colorLatex":"H_{D}","pointOpacity":"1","pointSize":"W_{L}"},{"type":"expression","id":"85","folderId":"76","color":"#2d70b3","latex":"F\\left(N_{Sy}\\left(N_{Sy}\\left(0.75\\right)\\right)\\right)","colorLatex":"H_{D}","pointOpacity":"1","pointSize":"W_{L}"},{"type":"expression","id":"77","folderId":"76","color":"#c74440","latex":"F'\\left(x\\right).x=0","hidden":true},{"type":"expression","id":"78","folderId":"76","color":"#2d70b3","latex":"F'\\left(x\\right).y=0","hidden":true}]}}