Advertisement
Guest User

Untitled

a guest
Oct 17th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. <canvas id = "canvas" width="160" height="160">HTML5</canvas><br>
  2. <label>Scale</label><br>
  3. <input id="scale" value="20"><br>
  4. <input maxlength = "8" id="code"><input type ="button" value="Draw" onclick="draw()">
  5. <script>
  6. var canvas = document.getElementById('canvas');
  7. var ctx = canvas.getContext('2d');
  8. function draw(){
  9. var scale = Number(document.getElementById('scale').value);
  10. canvas.width = 8*scale;
  11. canvas.height = 8*scale;
  12. ctx.clearRect(0,0,canvas.width,canvas.height)
  13. var code = document.getElementById('code').value;
  14. codes = new Array();
  15. for(x in code){
  16. let bin = code.charCodeAt(x).toString(2);
  17. for(i = 0; i<9-bin.length;i++){
  18. bin = "0" + bin;
  19. }
  20. codes.push(bin.split(""));
  21. }
  22. for(y = 0; y < codes.length; y++){
  23. for(x = 0; x < codes[y].length; x++){
  24. if(Number(codes[x][y])){
  25. ctx.fillRect(x*scale,y*scale,scale,scale);
  26. }
  27. }
  28. }
  29. }
  30. canvas.onclick = function(e){
  31. var scale = Number(document.getElementById('scale').value);
  32. let x = e.pageX - this.offsetLeft
  33. let y = e.pageY - this.offsetTop
  34. let index = Math.floor(x/scale);
  35. let indey = Math.floor(y/scale);
  36. console.log(codes[index][indey]);
  37. codes[index][indey] = !ctx.getImageData(x,y,1,1).data[3]?1:0;
  38. console.log(codes[index][indey]);
  39. let letters = "";
  40. for(i in codes){
  41. letters += String.fromCharCode(parseInt(codes[i].join(""),2))
  42. }
  43. console.log(letters);
  44. document.getElementById('code').value = letters;
  45. draw()
  46. }
  47. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement