Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.10 KB | None | 0 0
  1. <html>
  2. <meta charset="UTF-8" http-equiv="imagetoolbar" content="no" />
  3. <title>me mama</title>
  4. <body onselectstart="return false" oncontextmenu="return false" ondragstart="return false">
  5. <canvas id="screen" width="1200" height="700" style="border:1px solid"></canvas><br>
  6. <button type="button" id="resetar" onclick="resetarCanvas(true)">Resetar</button>
  7. <button type="button" id="addcurva" onclick="criarCurva()">Criar Curva</button>
  8. <button type="button" id="delcurva" onclick="deletarCurva()">Deletar Curva</button>
  9. <button type="button" id="antcurva" onclick="AlternaCurva(-1)">Curva Anterior</button>
  10. <button type="button" id="procurva" onclick="AlternaCurva(1)">Próxima Curva</button>
  11. <input type="checkbox" id="pontoview" name="scales" onclick="redesenhaTudo()" checked>
  12. <input type="checkbox" id="linhaview" name="scales" onclick="redesenhaTudo()" checked>
  13. <input type="checkbox" id="curvaview" name="scales" onclick="redesenhaTudo()" checked>
  14. <input type="text" id="interacoes">
  15. </body>
  16. <script>
  17. var tela = document.getElementById('screen');
  18. var pontoview = document.getElementById('pontoview');
  19. var linhaview = document.getElementById('linhaview');
  20. var curvaview = document.getElementById('curvaview');
  21. var element = [];
  22. var context = tela.getContext('2d');
  23. var curvasel = 0;
  24. var moveaux = false;
  25. var testerange = false;
  26.  
  27. tela.addEventListener('mousedown',onClickFunction);
  28.  
  29.  
  30. function resetarCanvas(full){
  31. testerange = false;
  32. moveaux = false;
  33.  
  34. context.clearRect(0, 0, tela.width, tela.height);
  35. if(full){
  36. element = [];
  37. curvasel = 0;
  38. }
  39. }
  40.  
  41. function criarCurva(){
  42. curvasel=element.length;
  43. redesenhaTudo();
  44.  
  45. }
  46.  
  47.  
  48. function redesenhaTudo(){
  49. console.log("olá")
  50. resetarCanvas(false);
  51. var color;
  52. for (let index = 0; index < element.length; index++) {
  53.  
  54. if(index==curvasel){
  55. color = true;
  56. }else{
  57. color = false;
  58. }
  59.  
  60. for (let indexin = 0; indexin < element[index].length; indexin++) {
  61. pointDraw(element[index][indexin].x,element[index][indexin].y,color)
  62.  
  63. if(indexin>0){
  64. lineDraw(element[index][indexin-1].x,element[index][indexin-1].y,index,indexin,color)
  65. }
  66.  
  67. }
  68.  
  69. }
  70. }
  71.  
  72.  
  73. function deletarCurva(){
  74. testerange = false;
  75. moveaux = false;
  76. element.splice(curvasel,1);
  77. curvasel = 0;
  78. redesenhaTudo();
  79.  
  80. }
  81.  
  82.  
  83. function deletarPonto(posx,posy){
  84. testerange = false;
  85. moveaux = false;
  86. for (let index = 0; index < element[curvasel].length; index++) {
  87. var distx = Math.abs(element[curvasel][index].x - posx);
  88. var disty = Math.abs(element[curvasel][index].y - posy);
  89. if(distx <= 3.5 & disty <= 3.5 ){
  90. element[curvasel].splice(index,1);
  91. redesenhaTudo();
  92. }
  93.  
  94. }
  95.  
  96. }
  97.  
  98.  
  99. function AlternaCurva(direcao){
  100. testerange = false;
  101. moveaux = false;
  102. if( ( direcao==-1 & curvasel > 0 ) || ( direcao==1 & curvasel < element.length-1 )){
  103. curvasel = curvasel + direcao;
  104. redesenhaTudo();
  105. }
  106.  
  107. }
  108.  
  109.  
  110. function myScript(){
  111. console.log("event.clientX - rect.left, event.clientY - rect.top");
  112. }
  113.  
  114. function onClickFunction(event) {
  115. var rect = tela.getBoundingClientRect();
  116. var posx = event.clientX - rect.left;
  117. var posy = event.clientY - rect.top;
  118.  
  119. if(1 == event.which) {
  120. if(!element[curvasel]){
  121. element[curvasel] = [];
  122. }
  123. for (let index = 0; index < element[curvasel].length; index++) {
  124. var distx = Math.abs(element[curvasel][index].x - posx);
  125. var disty = Math.abs(element[curvasel][index].y - posy);
  126. if(distx <= 3.5 & disty <= 3.5 ){
  127. moveaux = index;
  128. }
  129.  
  130. }
  131. tela.addEventListener("drag", myScript);
  132.  
  133. if(moveaux!=false){
  134.  
  135. console.log(testerange);
  136. if(testerange){
  137.  
  138. element[curvasel][moveaux] = {
  139. x:posx,
  140. y:posy
  141. };
  142. testerange = false;
  143. moveaux = false;
  144. redesenhaTudo();
  145. };
  146. testerange = moveaux;
  147. }else{
  148. pointDraw(posx,posy,true);
  149. if(element[curvasel].length>0){
  150. lineDraw(posx,posy,curvasel,element[curvasel].length-1,true);
  151. }
  152. element[curvasel].push({
  153. x:posx,
  154. y:posy
  155. });
  156. }
  157. } else if(3 == event.which){
  158. deletarPonto(posx,posy);
  159. return false;
  160. }
  161. }
  162.  
  163.  
  164. function pointDraw(posx,posy,color){
  165. if(pontoview.checked){
  166. context.beginPath();
  167. if(color){
  168. context.fillStyle = "#48AF10";
  169. }else{
  170. context.fillStyle = "#000000";
  171. }
  172. context.fillRect(posx-3.5, posy-3.5,7,7);
  173. context.stroke();
  174. }
  175. }
  176.  
  177.  
  178. function lineDraw(posx,posy,index,to, color){
  179. if(linhaview.checked){
  180. context.beginPath();
  181. context.moveTo(posx, posy);
  182. context.lineTo(element[index][to].x, element[index][to].y);
  183.  
  184. if(color){
  185. context.strokeStyle = "#48AF10";
  186. }else{
  187. context.strokeStyle = "#000000";
  188. }
  189.  
  190. context.stroke();
  191.  
  192. }
  193. }
  194. </script>
  195. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement