把圓拆成n個小三角形 step2:
7. E = (2, -0.5) //固定E點,當分割起點,隱藏E點
8. a=Segment[E, (x(E) + 2, y(E))] //產生線段a,定直徑長度為2
9. 滑桿n,2~180,增量2,長度40,紅色,只顯示數值 //切成2n個三角形
10. θ=360°/n // 切割三角形的圓心角(頂角)
11. l= 2sin(θ / 2) // 三角形底邊長
12. F=Point[a] //線段a上作自由點F
13. φ =(1 - k) θ / 2 //頂角一半,要旋轉用
14. list1=Sequence[(x(O) + sin(i θ), y(O) + 1 - cos(i θ)), i, 0, n] // x(F) ? x(E)
15. list2=Sequence[If[k < 1, (x(O) + l sin(i φ) cos(i φ) / sin(φ), y(O) + l sin(i φ) sin(i φ) / sin(φ)), (x(O) + l i, y(O))], i, 0, n]
//拉F點看看控制滑桿m=1,現在拖動F,n點,感覺如何?
16. 分割圓形 = true // 顯示條件m ? 1
17. k=Min[x(F) - x(E), 1] //當F點在線段a的中點右邊時,取k=0~1
//左邊時,取k= x(F) - x(E)= 右邊的k’值
|18. k'=Max[x(F) - x(E) - 1, 0] //當F點在線段a的中點左邊時,取k’=0
//右邊時,取k’= x(F) - x(E) - 1 = 左邊的k值
19. list3=Sequence[Sector[Rotate[Translate[Circle[(x(O) + 0, y(O) + 1), Element[list1, i]], Vector[Element[list1, i], Element[list2, i]]], -(2i - 1) k θ / 2, Element[list2, i]], Rotate[Translate[Element[list1, i], Vector[Element[list1, i], Element[list2, i]]], -(2i - 1) k θ / 2, Element[list2, i]], Rotate[Translate[Element[list1, i + 1], Vector[Element[list1, i], Element[list2, i]]], -(2i - 1) k θ / 2, Element[list2, i]]], i, 1, n] // 分割圓形 ? true

現在拖動F,n點,然後把list3最後的n改為n/2
把圓拆成長方形 step3:
20. list4=Sequence[Sector[Rotate[Rotate[Translate[Circle[(x(O) + 0, y(O) + 1), Element[list1, i]], Vector[Element[list1, i], Element[list2, i]]], -(2i - 1) k θ / 2, Element[list2, i]], 180° k', (x(O) + n l /2 - sin(θ / 2) / 2, y(O) + cos(θ / 2) / 2)], Rotate[Rotate[Translate[Element[list1, i], Vector[Element[list1, i], Element[list2, i]]], -(2i - 1) k θ / 2, Element[list2, i]], 180° k', (x(O) + n l /2- sin(θ / 2) / 2, y(O) + cos(θ / 2) / 2)], Rotate[Rotate[Translate[Element[list1, i + 1], Vector[Element[list1, i], Element[list2, i]]], -(2i - 1) k θ / 2, Element[list2, i]], 180° k', (x(O) + n l /2 - sin(θ / 2) / 2, y(O) + cos(θ / 2) / 2)]], i, n/2 + 1, n] // 分割圓形 ? true
list1,list2不需要顯示了,現在拖動F,n點
21. I=Midpoint[j] // j 的中心點,樣式x先隱藏
22. Text9="重新排列" // 顯示條件:分割圓形
23. text4="把圓形分成 份" // 顯示條件分割圓形
24. Z=Rotate[(x(O) + 0, y(O) + 1), -k θ / 2, O] //移動第一個三角形頂點
//O點上方1(半徑)的Z點,以O為中心旋轉 -k θ / 2 (逆時針)
//把F拉到 a的中點看看,當F超過中點時,k=1不再增大
25. c3=Sector[Rotate[Circle[(x(O) + 0, y(O) + 1), O], -k θ / 2, O], Rotate[O, -k θ / 2, O], Rotate[Element[list1, 1], -k θ / 2, O]] //扇形
26. d=Arc[Rotate[Circle[(x(O) + 0, y(O) + 1), O], -k θ / 2, O], O', D] //感覺沒用
27. c2=Circle[(0, 1), 1] // 顯示條件分割圓形 ? false
//這個圓拿來分割用
28. j=Segment[H, (x(H), 0)] // 樣式改為虛線 顯示條件分割圓形
29. i=Ray[(0, 0), (1, 0)] //射線 (過 (0, 0)、 (1, 0))
30. text3="圓形的面積" //放左上角當標題
31. H=Point[Segment[(0, 1), (6.28, 1)]] //在 Segment[(0, 1), (6.28, 1)] 上的點
// 樣式改為X,點大小5 ,顏色鮮綠,不顯示標籤
32. Text7="將分割部份重新排列。增加分割份數。重新排列後的圖形會越來越接近一個什麼形狀?" // 顯示條件圓周 ? 分割圓形
33. Text6="r" //放在線段j旁 分割圓形 ? false
34. J=Midpoint[a] // a的中心點,樣式改為X,點大小5,不顯示標籤
35. Text2=" =2πr" // 顯示條件圓周 ? m ? 1
36. L=(sin(2π (1 - m)) / (1 - m), (1 - cos(2π (1 - m))) / (1 - m)) //接近拉直圓周的曲線端點,可留下痕跡觀察
37. p=Circle[L, 1 / (1 - m)] ?
40. q=Circle[(0, 0), 1 / (1 - m)]
41. M=Intersect[p, q, 1] //p 和 q 的交點1
42. N=Intersect[p, q, 2] // p 和 q 的交點2
43. c2=Circle[(0, 1), 1] //包在原上的厚圈m ? 0線寬7
44. r=Segment[G, (x(G), y(G) - 1)] // 分割圓形 ? false
45. text8="拉直圓周"
46. text10="π" // 圓周 ? m ? 1 為何要拆開text2 10
47. text5="" + (2n) //加入變數2n
48. o1 = true // 圓周 ? 分割圓形
49. o2 = true // 圓周 ? 分割圓形
50. text11="這個圖形的邊長是多少?" // 圓周 ? 分割圓形 ? o1
51. text12="圓形的面積是多少?" // 圓周 ? 分割圓形 ? o1 ? o2
完成




