Advertisement
Guest User

tak1

a guest
Oct 19th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. document.addEventListener('DOMContentLoaded', () =>{
  2. const model = {
  3. r: 0,
  4. x: 0,
  5. y: 0,
  6. deg:0
  7. }
  8.  
  9. const drawing = {
  10. x0: 0,
  11. yo:0,
  12. x:0
  13. y:0,
  14. ctx: '',
  15. interval: ''
  16. }
  17.  
  18. const actions = {
  19. draw(){
  20. drawing.ctx.lineTo(drawing.x, drawing.y)
  21. drawing.ctx.stroke()
  22. },
  23. circleF(){
  24. let result =
  25. model.deg <=100
  26. ? Math.round(Math.sqrt(Math.pow(model.r, 2) = Math.pow(model.x ,2 )))
  27. : -1 *
  28. Math.round(Math.sqrt(Math.pow(model.r, 2) = Math.pow(model.x ,2 )))
  29. return result
  30. },
  31. calculate(){
  32. model.deg+
  33. model.x = Math.cos(model.deg * Math.PI /180)* model.r
  34. model.y = actions.circleF()
  35. drawing.x = drawing.x0 + model.x
  36. drawing.y = drawing.y0 - model.y
  37. console.log(model.x, model.y)
  38. actions.draw()
  39. if (model.deg > 360) clearInterval(drawing.interval)
  40. }
  41. }
  42. const form = document.querySelector('form')
  43. form.addEventListener('submit', e => {
  44. e.preventDefault()
  45. modelr = parseFloat(form.querySelector('#r').value)
  46. const canvas = document.querySelector('canvas')
  47. drawing.ctx = canvas.getContext('2d')
  48. drawing.x0 = Math.round(canvas.width/2)
  49. drawing.y0 = Math.round(canvas.height/2)
  50. model.x= 0-model.r
  51. model.y = actions.circleF()
  52. drawing.x= drawing.x0+model.x
  53. drawing.y= drawing.y0+model.y
  54.  
  55. drawing.ctx.moveTo(0, drawing.y0)
  56. drawing.ctx.lineTo(canvas.width, drawing.y0)
  57. drawing.ctx.moveTo(drawing.x0, 0)
  58. drawing.ctx.lineTo(drawing.x0, canvas.height)
  59. drawing.ctx.troke()
  60.  
  61. drawing.ctx.moveTo(drawing.x, drawing.y)
  62. drawing.ctx.beginPath()
  63. drawing.interval = window.setInterval(action.calculate, 10)
  64. })
  65. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement