Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.17 KB | None | 0 0
  1. class Point{
  2. constructor(x,y){
  3. this.x = x;
  4. this.y = y;
  5. }
  6. }
  7.  
  8.  
  9. var jsonLetter;
  10.  
  11. var canvas = document.querySelector('canvas');
  12. var ctx = canvas.getContext("2d");
  13.  
  14. canvas.height = window.innerHeight;
  15. canvas.width = window.innerWidth;
  16.  
  17. ctx.strokeStyle = "black";
  18. ctx.lineWidth = 2;
  19. canvas.addEventListener("mousedown",mousePressEvent);
  20. canvas.addEventListener("mousemove",mouseMoveEvent);
  21. canvas.addEventListener("mouseup",mouseReleaseEvent);
  22.  
  23. let drawing = false;
  24. let lastPoint = new Point(0,0);
  25. let letter_list = [];
  26. let boundary_corners = new Array(4);
  27. let matrix = makeArray(8,8);
  28.  
  29.  
  30. function mousePressEvent(e){
  31. drawing = true;
  32. lastPoint = new Point(e.clientX,e.clientY);
  33. letter_list.push(lastPoint);
  34.  
  35. }
  36.  
  37. function mouseReleaseEvent(){
  38. drawing = false;
  39. ctx.beginPath();
  40. }
  41.  
  42. function mouseMoveEvent(e){
  43. if(!drawing) return;
  44. ctx.lineCap = "round";
  45.  
  46. ctx.lineTo(e.clientX, e.clientY);
  47. lastPoint = new Point(e.clientX,e.clientY);
  48. letter_list.push(lastPoint);
  49. ctx.stroke();
  50.  
  51. }
  52.  
  53. function paintLetter(){
  54. var max_x = letter_list[0].x;
  55. var min_x = letter_list[0].x;
  56. var max_y = letter_list[0].y;
  57. var min_y = letter_list[0].y;
  58.  
  59. letter_list.forEach(point => {
  60. if(point.x >= max_x) max_x = point.x;
  61. if(point.x <= min_x) min_x = point.x;
  62. if(point.y >= max_y) max_y = point.y;
  63. if(point.y <= min_y) min_y = point.y;
  64.  
  65. });
  66.  
  67. var reszta_x = (max_x - min_x) % 8;
  68. var reszta_y = (max_y - min_y) % 8;
  69.  
  70. var offset_x = 8 - reszta_x;
  71. var offset_y = 8 - reszta_y;
  72.  
  73. max_x = max_x + offset_x;
  74. max_y = max_y + offset_y;
  75.  
  76. boundary_corners[0] = new Point(min_x,min_y);
  77. boundary_corners[1] = new Point(max_x,min_y);
  78. boundary_corners[2] = new Point(max_x,max_y);
  79. boundary_corners[3] = new Point(min_x,max_y);
  80.  
  81. var wd = boundary_corners[1].x - boundary_corners[0].x;
  82. var hg = boundary_corners[2].y - boundary_corners[1].y;
  83.  
  84. //drawGrid(wd,hg,boundary_corners[0]);
  85. getVector(wd,hg,boundary_corners[0]);
  86.  
  87.  
  88. }
  89.  
  90. function drawGrid(width,height,origin){
  91. var part_of_width = width / 8;
  92. var parth_of_height = height / 8;
  93.  
  94. for (let i = 0; i < 9; i++) {
  95. ctx.beginPath();
  96. console.log(origin.y);
  97. ctx.moveTo(origin.x + part_of_width * i,origin.y);
  98. ctx.lineTo(origin.x + part_of_width * i,origin.y + height);
  99. ctx.moveTo(origin.x,origin.y + parth_of_height * i);
  100. ctx.lineTo(origin.x + width,origin.y + parth_of_height * i);
  101. ctx.stroke();
  102.  
  103. }
  104. }
  105.  
  106. function getVector(width,height,origin){
  107.  
  108. var xi = 0;
  109. var yi = 0;
  110.  
  111. letter_list.forEach((pos,i) =>{
  112. xi = ((pos.x - origin.x) * 8) / width;
  113. yi = ((pos.y - origin.y) * 8) / height;
  114.  
  115. matrix[Math.floor(yi)][Math.floor(xi)] = 1;
  116.  
  117. });
  118.  
  119. let vector_list = [];
  120.  
  121. for (let i = 0; i < 8; i++) {
  122. for (let k = 0; k < 8; k++) {
  123. vector_list.push(matrix[i][k]);
  124.  
  125. }
  126.  
  127. }
  128.  
  129. for (let i = 0; i < vector_list.length; i++) {
  130. if(vector_list[i] == undefined) vector_list[i] = 0;
  131.  
  132.  
  133. }
  134.  
  135. var letterValue = document.getElementById('letterBox').value;
  136. var result_vector = vectorized_result(letterValue.toLowerCase());
  137.  
  138. console.log(letterValue);
  139. console.log(result_vector);
  140.  
  141. jsonLetter = [
  142. {
  143. in: vector_list,
  144. out: result_vector
  145. }
  146. ]
  147.  
  148. console.log(vector_list);
  149. }
  150.  
  151.  
  152.  
  153.  
  154. function makeArray(d1, d2) {
  155. var arr = [];
  156. for(let i = 0; i < d2; i++) {
  157. arr.push(new Array(d1));
  158. }
  159. return arr;
  160. }
  161.  
  162. function vectorized_result(j){
  163. var list = [0,0,0];
  164.  
  165. if(j == 'k') list[0] = 1;
  166. else if(j == 'l') list[1] = 1;
  167. else if(j == 'y') list[2] = 1;
  168.  
  169.  
  170. return list;
  171.  
  172. }
  173.  
  174. function ClearScreen(){
  175. lastPoint = new Point(0,0);
  176. letter_list = [];
  177. boundary_corners = new Array(4);
  178. matrix = makeArray(8,8);
  179. ctx.clearRect(0, 0, canvas.width, canvas.height);
  180. document.getElementById('letterBox').value = "";
  181. document.getElementById('wylosowana litera').innerHTML = "";
  182. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement