Canvas API 3 - μΊλ²μ€μ μ 그리기
MDN + κΈ°ν μλ£λ€μ 곡λΆνλ©° μ΄ν΄ν λ΄μ©μ μ 리ν κΈμ λλ€.
곑μ μ 그릴 μ€ μμμΌ, μλ κ·Έλ¦¬κ³ μμΌλ‘ λ§λ€ μ μλ λ§μ κ²λ€μ 그릴 μ μλ€. κ·Έ κΈ°λ³Έμ νΈλ₯Ό 그리λ κ²μ΄λ€.
arc()
μΊλ²μ€ <canvas>μ μμ 그릴 λ μ¬μ©λλ λ©μλμ΄λ€. context λ '2D'μ΄λ€.
arc(x, y, radius, startAngle, endAngle, anticlockwise)
(x, y)μμΉμ μμ μ λλ©΄μ, λ°μ§λ¦ rμ κ°μ§κ³ , startAngle μμ μμνμ¬ endAngle μμ λλλ©° μ£Όμ΄μ§ anticlockwise λ°©ν₯(mdn μ€λͺ μ΄ μ’ μ΄λ €μ΄λ°, μκ³λ°©ν₯μΌλ‘ νΈλ₯Ό κ·Έλ¦΄μ§ μλλ©΄ λ°μκ³λ°©ν₯μΌλ‘ 그릴μ§λ₯Ό λ£λ κ°μΌλ‘, boolean νμ μ΄λ©° κΈ°λ³Έκ°μ μκ³λ°©ν₯μ΄λ€.)μΌλ‘ κ°λ νΈλ₯Ό κ·Έλ¦¬κ² λλ€.
μ¬κΈ°μ μ΄λ €μ λ κ°λ μ΄ startAngle κ³Ό endAngle μΈλ°, μ¬κΈ° λ€μ΄κ°λ κ°μ κ°μ΄ μλλΌ λΌλμ κ°μ΄λ€.
λΌλμ κ°μ΄λ?
νν μ°λ¦¬κ° μκ°νλ κ°μ 45λ, 60λ λ‘ νννλ '60λΆλ² λ'λ¨μμ΄λ€. κ·Έλ¬λ κ°μ λνλ΄λ λ λ€λ₯Έ λ¨μκ° μλλ°, μμ λ°μ§λ¦μ λν νΈμ κΈΈμ΄μ λΉλ‘ μ μνλ λΌλμ λ¨μμ΄λ€.
λΌλμμ λ μμ보기 μ μ, νμ΄ PI κ°λ μ λν΄ μ§κ³ λμ΄κ°μΌ νλ€.
νμ΄ (Ο) λ μμ μ§λ¦ λλΉ μμ λλ μ λΉμ¨μ΄λ€. μμ μ§λ¦ κΈΈμ΄μ μκ΄μμ΄ κ·Έ λΉμ¨μ λμΌν 3.14159.. μ΄κΈ° λλ¬Έμ μμμ΄λ€. javascript μμλ Math.PIλ‘ νΈμΆν μ μλ€.
λ€μ λΌλμμΌλ‘ λμμμ, μ§λ¦μ μμ ν μͺ½ λμμ μμ κ΄ν΅νμ¬ λ°λ λμΌλ‘ λ»μ΄μ§ μ§μ μ΄λ€. μ μμμ 180λλ‘ μ μ€μμ κ΄ν΅νλ μ§μ μ νΈλλ²μΌλ‘ κ°μ μ¬λ³΄λ©΄ 180λμ΄λ€. μκΉ νμ΄ κ°λ μ λ΄€μ λ, μ§λ¦ λλΉ μμ λλ κ° νμ΄μ΄λ―λ‘, 180λ = νμ΄ λΌλμ μμ μ μ μλ€. (360λ = 2 * νμ΄ λΌλμ, 90 λ = νμ΄ / 2 λΌλμ)
Javascript μμ λ (degree)μμ λΌλμ (radian)μΌλ‘ λ³ννλ 곡μμ λ€μκ³Ό κ°λ€.
1radian = (Math.PI/180)*degrees
arc() λ‘ κ°λ¨ν νΈλ₯Ό κ·Έλ €λ΄€λ€.
Reference
https://ko.khanacademy.org/computing/computer-programming/programming-natural-simulations/programming-angular-movement/a/angles-and-units