Spaces:
Running
Running
fix
Browse files- js/interactive_grid.js +14 -11
js/interactive_grid.js
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
const gridSize = 14;
|
2 |
-
var
|
|
|
3 |
var inputImage = null;
|
4 |
var image_bef = null;
|
5 |
var image_aft = null;
|
@@ -81,14 +82,14 @@ function drawGridBefore() {
|
|
81 |
for (let row = 0; row < gridSize; row++) {
|
82 |
for (let col = 0; col < gridSize; col++) {
|
83 |
ctx_bef.beginPath();
|
84 |
-
ctx_bef.rect(col *
|
85 |
ctx_bef.strokeStyle = 'black';
|
86 |
ctx_bef.lineWidth = 1;
|
87 |
ctx_bef.stroke();
|
88 |
|
89 |
if (grid_bef[row][col]) {
|
90 |
ctx_bef.fillStyle = 'rgba(0, 255, 0, 0.5)';
|
91 |
-
ctx_bef.fillRect(col *
|
92 |
}
|
93 |
}
|
94 |
}
|
@@ -102,14 +103,14 @@ function drawGridAfter() {
|
|
102 |
for (let row = 0; row < gridSize; row++) {
|
103 |
for (let col = 0; col < gridSize; col++) {
|
104 |
ctx_aft.beginPath();
|
105 |
-
ctx_aft.rect(col *
|
106 |
ctx_aft.strokeStyle = 'black';
|
107 |
ctx_aft.lineWidth = 1;
|
108 |
ctx_aft.stroke();
|
109 |
|
110 |
if (grid_aft[row][col]) {
|
111 |
ctx_aft.fillStyle = 'rgba(0, 255, 0, 0.5)';
|
112 |
-
ctx_aft.fillRect(col *
|
113 |
}
|
114 |
}
|
115 |
}
|
@@ -133,7 +134,8 @@ function initializeEditorBefore() {
|
|
133 |
canvas_before.addEventListener('mouseup', handleMouseUp);
|
134 |
canvas_before.addEventListener('mouseleave', handleMouseLeave);
|
135 |
|
136 |
-
|
|
|
137 |
|
138 |
canvas_before.addEventListener('click', (event) => {
|
139 |
const rect = canvas_before.getBoundingClientRect();
|
@@ -141,8 +143,8 @@ function initializeEditorBefore() {
|
|
141 |
const scaleY = canvas_before.height / rect.height;
|
142 |
const x = (event.clientX - rect.left) * scaleX;
|
143 |
const y = (event.clientY - rect.top) * scaleY;
|
144 |
-
const row = Math.floor(y /
|
145 |
-
const col = Math.floor(x /
|
146 |
|
147 |
// If the cell is already selected, it's always allowed to deselect it
|
148 |
if (grid_bef[row][col]) {
|
@@ -180,7 +182,8 @@ function initializeEditorAfter() {
|
|
180 |
canvas_after.addEventListener('mouseup', handleMouseUp);
|
181 |
canvas_after.addEventListener('mouseleave', handleMouseLeave);
|
182 |
|
183 |
-
|
|
|
184 |
|
185 |
canvas_after.addEventListener('click', (event) => {
|
186 |
const rect = canvas_after.getBoundingClientRect();
|
@@ -188,8 +191,8 @@ function initializeEditorAfter() {
|
|
188 |
const scaleY = canvas_after.height / rect.height;
|
189 |
const x = (event.clientX - rect.left) * scaleX;
|
190 |
const y = (event.clientY - rect.top) * scaleY;
|
191 |
-
const row = Math.floor(y /
|
192 |
-
const col = Math.floor(x /
|
193 |
|
194 |
// If the cell is already selected, it's always allowed to deselect it
|
195 |
if (grid_aft[row][col]) {
|
|
|
1 |
const gridSize = 14;
|
2 |
+
var cellSizeX = null;
|
3 |
+
var cellSizeY = null;
|
4 |
var inputImage = null;
|
5 |
var image_bef = null;
|
6 |
var image_aft = null;
|
|
|
82 |
for (let row = 0; row < gridSize; row++) {
|
83 |
for (let col = 0; col < gridSize; col++) {
|
84 |
ctx_bef.beginPath();
|
85 |
+
ctx_bef.rect(col * cellSizeX, row * cellSizeY, cellSizeX, cellSizeY);
|
86 |
ctx_bef.strokeStyle = 'black';
|
87 |
ctx_bef.lineWidth = 1;
|
88 |
ctx_bef.stroke();
|
89 |
|
90 |
if (grid_bef[row][col]) {
|
91 |
ctx_bef.fillStyle = 'rgba(0, 255, 0, 0.5)';
|
92 |
+
ctx_bef.fillRect(col * cellSizeX, row * cellSizeY, cellSizeX, cellSizeY);
|
93 |
}
|
94 |
}
|
95 |
}
|
|
|
103 |
for (let row = 0; row < gridSize; row++) {
|
104 |
for (let col = 0; col < gridSize; col++) {
|
105 |
ctx_aft.beginPath();
|
106 |
+
ctx_aft.rect(col * cellSizeX, row * cellSizeY, cellSizeX, cellSizeY);
|
107 |
ctx_aft.strokeStyle = 'black';
|
108 |
ctx_aft.lineWidth = 1;
|
109 |
ctx_aft.stroke();
|
110 |
|
111 |
if (grid_aft[row][col]) {
|
112 |
ctx_aft.fillStyle = 'rgba(0, 255, 0, 0.5)';
|
113 |
+
ctx_aft.fillRect(col * cellSizeX, row * cellSizeY, cellSizeX, cellSizeY);
|
114 |
}
|
115 |
}
|
116 |
}
|
|
|
134 |
canvas_before.addEventListener('mouseup', handleMouseUp);
|
135 |
canvas_before.addEventListener('mouseleave', handleMouseLeave);
|
136 |
|
137 |
+
cellSizeX = canvas_before.width / gridSize;
|
138 |
+
cellSizeY = canvas_before.height / gridSize;
|
139 |
|
140 |
canvas_before.addEventListener('click', (event) => {
|
141 |
const rect = canvas_before.getBoundingClientRect();
|
|
|
143 |
const scaleY = canvas_before.height / rect.height;
|
144 |
const x = (event.clientX - rect.left) * scaleX;
|
145 |
const y = (event.clientY - rect.top) * scaleY;
|
146 |
+
const row = Math.floor(y / cellSizeY);
|
147 |
+
const col = Math.floor(x / cellSizeX);
|
148 |
|
149 |
// If the cell is already selected, it's always allowed to deselect it
|
150 |
if (grid_bef[row][col]) {
|
|
|
182 |
canvas_after.addEventListener('mouseup', handleMouseUp);
|
183 |
canvas_after.addEventListener('mouseleave', handleMouseLeave);
|
184 |
|
185 |
+
cellSizeX = canvas_after.width / gridSize;
|
186 |
+
cellSizeY = canvas_after.height / gridSize;
|
187 |
|
188 |
canvas_after.addEventListener('click', (event) => {
|
189 |
const rect = canvas_after.getBoundingClientRect();
|
|
|
191 |
const scaleY = canvas_after.height / rect.height;
|
192 |
const x = (event.clientX - rect.left) * scaleX;
|
193 |
const y = (event.clientY - rect.top) * scaleY;
|
194 |
+
const row = Math.floor(y / cellSizeY);
|
195 |
+
const col = Math.floor(x / cellSizeX);
|
196 |
|
197 |
// If the cell is already selected, it's always allowed to deselect it
|
198 |
if (grid_aft[row][col]) {
|