Advertisement
LilChicha174

Untitled

Jun 9th, 2022
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.36 KB | None | 0 0
  1. void turn(struct Png *image, struct Png *image2, int width_pixel, int x1, int y1, int x2, int y2,
  2.           int degree) {
  3.     int x_1, y_1, x_2, y_2, x_3, y_3, x_4, y_4, x_new, y_new;
  4.     x_1 = x1, y_1 = y2, x_2 = x1, y_2 = y1, x_3 = x2, y_3 = y1, x_4 = x2, y_4 = y2;
  5.     int x_c = (x_1 + x_2 + x_3 + x_4) / 4;
  6.     int y_c = (y_1 + y_2 + y_3 + y_4) / 4;
  7.     for (int y = 0; y < image2->height; y++) {
  8.         png_byte *row = image2->row_pointers[y];
  9.         for (int x = 0; x < image2->width; x++) {
  10.             png_byte *ptr = &(row[x * width_pixel]);
  11.             if (is_inside(x, y, x_1, y_1, x_3, y_3)) {
  12.                 int way_x = x - x_c;
  13.                 int way_y = y - y_c;
  14.                 if (degree == 90) {
  15.                     x_new = x_c - way_y;
  16.                     y_new = y_c + way_x;
  17.                     paint_pixel(image, x_new, y_new, 3, ptr[0], ptr[1], ptr[2]);
  18.                 }
  19.                 if (degree == 180) {
  20.                     x_new = x_c - way_x;
  21.                     y_new = y_c - way_y;
  22.                     paint_pixel(image, x_new, y_new, 3, ptr[0], ptr[1], ptr[2]);
  23.                 }
  24.                 if (degree == 270) {
  25.                     x_new = x_c + way_y;
  26.                     y_new = y_c - way_x;
  27.                     paint_pixel(image, x_new, y_new, 3, ptr[0], ptr[1], ptr[2]);
  28.                 }
  29.             }
  30.         }
  31.     }
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement