-
Notifications
You must be signed in to change notification settings - Fork 0
/
paintbrush.js
49 lines (42 loc) · 1.19 KB
/
paintbrush.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// Library of paintbrush functions
// Paintbrush properties
var add_width = 6;
var add_height = 6;
var min_brush_size = 3;
var max_brush_size = 50;
var brush_change_ratio = 1.4;
function change_brush_size(mode){
if (mode == 'decrease'){
// Decrease brush size
add_width /= brush_change_ratio;
add_height /= brush_change_ratio;
} else if (mode == 'increase'){
// Increase brush size
add_width *= brush_change_ratio;
add_height *= brush_change_ratio;
}
// Limit brush size
if (add_width < min_brush_size){
add_width = min_brush_size;
add_height = min_brush_size;
} else if (add_width > max_brush_size){
add_width = max_brush_size;
add_height = max_brush_size;
}
}
function brush_stroke(vals_grids){
for (i = 0; i < vals_grids.length; i++){
var vals = vals_grids[i];
// Add paint to brush area
for (var xadd = mouseX-add_width; xadd < mouseX+add_width; xadd++){
for (var yadd = mouseY-add_height; yadd < mouseY+add_height; yadd++){
if ((xadd >= 0) && (xadd < width) &&
(yadd >= 0) && (yadd < height)){
var grid_x = floor((xadd / pixel_stretch)) % LX;
var grid_y = floor((yadd / pixel_stretch)) % LY;
vals[grid_x][grid_y].add = true;
}
}
}
}
}