伸展的菱形-序列指令练习

修改自:[url=https://www.geogebra.org/u/goldenj]John Golden[/url] — 2014年10月9日 - 下午11:50 的 [url=https://www.geogebra.org/m/VABUvNBt]Star Fractal by Justin Lanier – GeoGebra[/url][br][url=https://ichoosemath.files.wordpress.com/2014/10/star-fractal-write-up.pdf]https://ichoosemath.files.wordpress.com/2014/10/star-fractal-write-up.pdf[/url]
[br]n=滑动条(5,50,1)[br]赋值(n,10)[br]m=滑动条(0,15,1)[br]赋值(m,0)[br]k=滑动条(0,15,1)[br]赋值(k,0)[br]A=(0, 0)[br]B=(1, 0)[br]a=线段(A,B)[br]#旋转(B,360*((°)/(n)),A)和点B为n角星邻近两角尖,B'为凹进去的角点[br]B'=旋转(B,-90°,((旋转(B,360*((°)/(n)),A)+B)/(2)))[br]B''=对称(B',直线(A,B))[br]#得出风筝形靠近中心的另一个角[br]C=交点(旋转(直线(B,B'),90°,B'),旋转(直线(B,B''),90°,B''))[br][br]#基本形状:poly1风筝形,poly2正方形[br]poly1=多边形(B,B',C,B'')[br]poly2=多边形(C,B',4)[br][br]#风筝形绕点A旋转得到n个,可以简洁为:序列(旋转(poly1,i*360*((°)/(n)),A),i,0,n-1)[br]list1=序列(多边形(旋转(B,i*360*((°)/(n)),A),旋转(B',i*360*((°)/(n)),A),旋转(C,i*360*((°)/(n)),A),旋转(B'',i*360*((°)/(n)),A)),i,0,n-1)[br][br]#正方形绕点A旋转得到n个[br]list2=序列(旋转(poly2,i*360*((°)/(n)),A),i,0,n-1)[br][br]#星尖角角度[br]α=角度(B',B,B'')[br][br]#缩放比例,风筝形短边/长边,值为tan(α/2),也为[br]ratio=((距离(B',C))/(距离(B',B)))[br][br]#将基本图形缩放,往外扩增[br]list3=序列(位似(list1,ratio^(i),A),i,1,k)[br]list4=序列(位似(list2,ratio^(i),A),i,1,k)[br][br]#将基本图形缩放,往外缩小[br]list5=序列(位似(list2,ratio^(-i),A),i,1,m)[br]list6=序列(位似(list1,ratio^(-i),A),i,1,m)[br][br]h=true[br]j=true[br][br]#h控制风筝形,j控制正方形[br]设置显示条件(list1,h)[br]设置显示条件(list3,h)[br]设置显示条件(list6,h)[br]设置显示条件(list2,j)[br]设置显示条件(list4,j)[br]设置显示条件(list5,j)[br][br]制作自定义工具[br]KitesSquares(Centre,Radius,Number)[br][br]
X
https://mp.weixin.qq.com/s?src=11×tamp=1677994668&ver=4387&signature=ngKF8jM9Ze7hayXx4nO5ZAJaxUMNbTsc66MlW-CkkEhJAzgnhfMhMxSoyColeJHYdsRrsXeVNVayvtP5IIIWDqRBc*YZ*pqLPsB7eI*mIIRW51wJYYdJUQQPJorfgkz*&new=1
xx
美妙的图形只需要五个序列就可以完成:[br]L_1:序列(向量((1; 2π / n i)), i, 0, m - 1)[br]L_2:添加(A, 序列(A + 总和(L_1, i), i, 1, m))[br]L_3:旋转(L_2, 2π / n)[br]L_4:序列(多边形(L_2(i + 1), L_2(i + 2), L_3(i + 1), L_3(i)), i, 1, m - 1)[br]L_5:序列(旋转(L_4, 2π / n i), i, 1, n)[br]另外再设置两个点A、B及两个参数值m、n。
#由于分成n份时,n角星凸角1(风筝形外角),凹角2=90,风筝形内角3[br]外角1=90°-360°/n[br]内角3=180°-角1=90°+360°/n[br]#缩放比例,风筝形短边/长边,值为tan(角1/2)[br]风筝形长边=R*sin(360°/2n)*tan(45°)[br]长/短=(1/sin(外角1/2))/(1/sin(内角3/2))=sin(内角3/2)/sin(外角1/2)[br]风筝形短边=R*sin(360°/2n)*tan(45°)*sin(外角1/2)/sin(内角3/2)即为[br]风筝形短边=R*sin(360°/2n)*tan(45°)*sin((90°-360°/n)/2)/sin((90°+360°/n)/2)[br]

Information: 伸展的菱形-序列指令练习