boolean ris = false; // . boolean sel_col = false; // . boolean sel_kist = false; // . int num_color = 0; // . 8 . int color_active_left = 0; int color_active_right = 1; // int num_panel; // // 4 8 . RGB 8 int [] colr = new int [8]; int [] colg = new int [8]; int [] colb = new int [8]; int [] proz = new int [8]; // 4 8 . , X Y, int [] r = new int [8]; int [] scale_x = new int [8]; int [] scale_y = new int [8]; int [] distanse = new int [8]; // , , int zader = 1000000000; int nabor; void ris_main_menu () // { fill ( 20, 20, 20); rect ( 0, 0, 65, 600); // // fill (20, 20, 20); stroke (200, 200, 200); rect (3, 5, 15, 15); noStroke (); fill (255, 0, 0); rect ( 5, 7, 3, 11); fill ( 0, 255, 0); rect ( 8, 7, 3, 11); fill ( 0, 0, 255); rect (11, 7, 3, 11); for (int a= 3; a < 14; a++) {// int b = a * 17; stroke (b, b, b); line (15, 20 - a, 16, 20 - a); } // fill (20, 20, 20); rect (22, 5, 15, 15); fill (200, 200, 200); ellipse (29, 12, 8, 8); fill (20, 20, 20); rect (41, 5, 15, 15); fill (200, 200, 200); rect (44, 8, 9, 9); // fill (50, 50, 50); rect (47, 11, 3, 3); stroke (50, 50, 50); line (48, 9, 51, 9); } void disp_sel_col () // 2 4 { cls_sel_col (); // noStroke (); fill (0, 0, 0); // , for (int i = 65; i <= 119; i = i + 18) // 8 2 { rect (5, i, 21, 16); rect (35, i, 21, 16); } for (int i = 0; i < 8; i+=2) // 4 { if (num_color == i) // - {stroke (200, 200, 200); } else {noStroke ();} // - fill (colr [i], colg [i], colb [i], proz [i]); rect ( 5, 65 + i * 9, 21, 16); // - if (i == color_active_left) {noStroke (); fill (240, 0, 0); ellipse (30, 73 + i * 9, 5, 5);} } for (int i = 1; i < 8; i+=2) // 4 { if (num_color == i) {stroke (200, 200, 200); } else {noStroke ();} fill (colr [i], colg [i], colb [i], proz [i]); rect (35, 56 + i * 9, 21, 16); // - if (i == color_active_right) {noStroke (); fill (240, 0, 0); ellipse (60, 64 + i * 9, 5, 5);} } // - if (sel_col == true) {ris_polz (colr [num_color], colg [num_color], colb [num_color], proz [num_color]);} // - if (sel_kist == true) {ris_polz (r [num_color], scale_x [num_color], scale_y [num_color], distanse [num_color]);} } void ris_col_bar () // { cls_pan_instr (); ris_polz (colr [num_color], colg [num_color], colb [num_color], proz [num_color]); for (int i=255; i>=0; i--) // 4 { stroke (i, 0, 0); line (5, 400-i, 10, 400-i); stroke (0, i, 0); line (20, 400-i, 25, 400-i); stroke (0, 0, i); line (35, 400-i, 40, 400-i); stroke (i, i, i); line (50, 400-i, 55, 400-i); } } void ris_sel_kist () // { cls_pan_instr (); ris_polz (r [num_color], scale_x [num_color], scale_y [num_color], distanse [num_color]); for (int i=255; i>=0; i--) // 4 { stroke (200, 200, 200); line (5, 400-i, 10, 400-i); line (20, 400-i, 25, 400-i); line (35, 400-i, 40, 400-i); line (50, 400-i, 55, 400-i); } disp_sel_col (); } void cls_pan_instr () // {noStroke (); fill (20, 20, 20); rect (0, 145, 65, 450);} void cls_polz () // { noStroke (); fill (20, 20, 20); for (int i = 11; i < 57; i = i + 15) {rect (i, 140, 9, 265);} } void cls_sel_col () // 8 { noStroke (); fill (20, 20, 20); rect (2, 63, 63, 75); } void ris_polz (int r, int g, int b, int p) // { cls_polz (); noStroke (); fill (200, 200, 200); triangle (12, 400 - r, 16, 396 - r, 16, 404 - r); triangle (27, 400 - g, 31, 396 - g, 31, 404 - g); triangle (42, 400 - b, 46, 396 - b, 46, 404 - b); triangle (57, 400 - p, 61, 396 - p, 61, 404 - p); } void sel_num_col (int x, int y) // . X Y // - , - . // - , - { for (int i = 0; i < 7; i++) { if (x >= 5 && x <= 26 && y >= 65 + i * 9 && y <= 81 + i * 8) { if (mouseButton == LEFT) {num_color = i;} else { if (mouseButton == RIGHT) {color_active_left = i;} }} if (x >= 35 && x <= 56 && y >= 65 + i * 9 && y <= 81 + i * 8) { if (mouseButton == LEFT) {num_color = i + 1;} else { if (mouseButton == RIGHT) {color_active_right = i + 1;} }} } disp_sel_col (); } void select_value (int x, int y, int num_panel) // { // 4 , // - , - , // X Y, if (sel_col == true | sel_kist == true) { int [] a = new int [4]; if (num_panel == 0) { a [0] = colr [num_color]; a [1] = colg [num_color]; a [2] = colb [num_color]; a [3] = proz [num_color]; } else { if (num_panel == 1) { a [0] = r [num_color]; a [1] = scale_x [num_color]; a [2] = scale_y [num_color]; a [3] = distanse [num_color]; } } // , for (int i = 0; i < 4; i++) { if (x >= 5 + i * 15 && x <= 15 + i * 15 && y >= 145 && y <= 400) {a [i] = 400 - y;} } // if (num_panel == 0) { colr [num_color] = a [0]; colg [num_color] = a [1]; colb [num_color] = a [2]; proz [num_color] = a [3]; } else { if (num_panel == 1) { r [num_color] = a[0]; scale_x [num_color] = a[1]; scale_y [num_color] = a[2]; distanse [num_color] = a[3]; } } ris_polz (a [0], a [1], a [2], a [3]); // disp_sel_col (); // } } void setup() {// RGB , for (int i = 0; i < 8; i++) { colr [i] = (i + 5) * 10; colg [i] = (i + 5) * 12; colb [i] = (i + 5) * 16; proz [i] = 255; } size(1000, 550); // background (0,0,0); // frameRate (20); ris_main_menu (); // ( ) disp_sel_col (); // } void draw() { if (mousePressed && ris == false) // {// if (mouseX >= 3 && mouseX <= 15 && mouseY >= 5 && mouseY <= 15) // , . , {ris_col_bar (); sel_col = true; sel_kist = false;} else { // if (mouseX >= 22 && mouseX <= 37 && mouseY >= 5 && mouseY <= 15) // , . // - . {ris_sel_kist (); sel_kist = true; sel_col = false;} else { // if (mouseX >= 5 && mouseX <= 56 && mouseY >= 65 && mouseY <= 135) {sel_num_col (mouseX, mouseY);} // . , // , else { if (sel_col == true && mouseX >= 5 && mouseX <= 55 && mouseY >= 145 && mouseY <= 400) {num_panel = 0;} if (sel_kist == true && mouseX >= 5 && mouseX <= 55 && mouseY >= 145 && mouseY <= 400) {num_panel = 1;} select_value (mouseX, mouseY, num_panel); // else { // // if (mouseX >= 70 && mouseX <= 120 && mouseY >= 25 && mouseY <= 75) // {save ("KARTINKA.bmp");} }}} // "else" } // " " // X // - + // !!! , / . // if (mousePressed && mouseX >= 65 + r [nabor] / 2) { ris = true; // . . // if (mouseButton == LEFT) {nabor = color_active_left;} // - else { if (mouseButton == RIGHT) {nabor = color_active_right;} // - } // , noStroke (); fill (colr [nabor], colg [nabor], colb [nabor], proz [nabor]); ellipse (mouseX, mouseY, r [nabor], r [nabor]); // // . // } else { // - . "" if(!mousePressed){ ris = false;}} }
Source: https://habr.com/ru/post/260763/
All Articles