Advertisement
Guest User

Untitled

a guest
Nov 11th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.18 KB | None | 0 0
  1. <!DOCTYPE html>
  2.  
  3. <html>
  4.  
  5. <head>
  6. <meta charset="UTF-8">
  7. <link href="https://fonts.googleapis.com/css?family=Roboto&display=swap" rel="stylesheet">
  8. <title>Curvas de Bézier</title>
  9. </head>
  10.  
  11. <body onLoad = init()>
  12.  
  13. <style>body{font-family: 'Roboto';}</style>
  14.  
  15. <h1>Curvas mt loucas</h1>
  16. <canvas id="myCanvas" width="1000" height="500" style="border:3px solid #000000; background-color:rgb(143, 143, 143);"></canvas></canvas>
  17. <br>
  18.  
  19.  
  20. <button onclick = "newCurve()">Nova curva</button>
  21. <button onclick = "buttonNotReady()">Deletar ponto</button>
  22. <button onclick = "nextCurve()">Próxima</button>
  23. <button onclick = "previousCurve()">Anterior</button>
  24.  
  25. <form>
  26. Quantidade de retas:
  27. <input type="number" name="numeroAvaliacoes" value="1" style="width: 40px">
  28. </form>
  29.  
  30.  
  31.  
  32.  
  33. <script>
  34. //Variaveis globais para todo o codigo
  35. var canvas, context, curvesArrayX, curvesArrayY, currentCurve, amountCurves;
  36.  
  37. function init(){
  38. curvesArrayX = [];
  39. curvesArrayY = [];
  40. currentCurve = 0;
  41. amountCurves = 0;
  42. curvesArrayX[currentCurve] = [];
  43. curvesArrayY[currentCurve] = [];
  44. canvas = document.getElementById("myCanvas");
  45. context = canvas.getContext("2d");
  46. canvas.addEventListener("mousedown", drawPoint);
  47. }
  48.  
  49.  
  50.  
  51. function drawPoint(event){
  52. console.log("Current Curve: " + currentCurve);
  53. console.log("Amount Curves: " + amountCurves);
  54. console.clear;
  55. //Definindo as caracteristicas do ponto
  56. var position = getMousePosition(event, canvas);
  57. var pointRadius = 3;
  58. context.fillStyle = "#ff2626";
  59.  
  60. //Desenha o ponto
  61. context.beginPath();
  62. context.arc(position.x, position.y, pointRadius, 0, Math.PI * 2);
  63. context.fill();
  64. context.stroke();
  65.  
  66. //Verifica se ja existem pontos existentes e tenta tracar uma reta
  67. var arraySize = curvesArrayX[currentCurve].length;
  68. if(arraySize >= 1){
  69. drawLine(position);
  70. }
  71.  
  72. //Adiciona o novo ponto ao array de pontos
  73. curvesArrayX[currentCurve].push(position.x);
  74. curvesArrayY[currentCurve].push(position.y);
  75. }
  76.  
  77. function getMousePosition(event, canvas) {
  78. var rect = canvas.getBoundingClientRect();
  79. return {
  80. x: event.clientX - rect.left,
  81. y: event.clientY - rect.top
  82. }
  83. }
  84.  
  85. function drawLine(position){
  86. var arraySize = curvesArrayX[currentCurve].length;
  87. if(arraySize >= 1){
  88. //verifica quantidade de pontos no array, antes de tentar criar uma reta
  89. var lastX = curvesArrayX[currentCurve][arraySize - 1];
  90. var lastY = curvesArrayY[currentCurve][arraySize - 1];
  91. context.beginPath();
  92. context.moveTo(lastX, lastY);
  93. context.lineTo(position.x, position.y);
  94. context.stroke();
  95. }
  96. }
  97.  
  98. function drawBezierCurve(){
  99.  
  100. }
  101.  
  102. function newCurve(){
  103. amountCurves++;
  104. currentCurve = amountCurves;
  105. curvesArrayX[amountCurves] = [];
  106. curvesArrayY[amountCurves] = [];
  107. }
  108.  
  109. function nextCurve(){
  110. if(currentCurve < amountCurves){
  111. currentCurve++;
  112. }
  113. }
  114.  
  115. function previousCurve(){
  116. if(currentCurve > 0){
  117. currentCurve--;
  118. }
  119. }
  120.  
  121. </script>
  122.  
  123. </body>
  124.  
  125. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement