Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.66 KB | None | 0 0
  1. #include <cmath>
  2. #include <iostream>
  3. #include <SDL2/SDL.h>
  4.  
  5. class cristall_1
  6. {
  7.     private:
  8.         int X,Y,Color,R,height;
  9.         double Fi;
  10.     public:
  11.         cristall_1(int X, int Y, int Color, int R, int height, double Fi);
  12.         void DrawCristall(SDL_Renderer* renderer);
  13.         void HideCrisatall();
  14.         void RotateY();
  15.         void RotateX();
  16.         void RotateZ();
  17. };
  18.  
  19. cristall_1::cristall_1(int X, int Y,int Color, int R, int height, double Fi)
  20. {
  21.     this -> X = X;
  22.     this -> Y = Y;
  23.     this -> Color = Color;
  24.     this -> height = height;
  25.     this -> Fi = Fi;
  26. }
  27.  
  28. void cristall_1::DrawCristall(SDL_Renderer* renderer)
  29. {
  30.      int X1,Y1,X2,Y2,X3,Y3,X4,Y4,X5,Y5,X6,Y6;
  31.      X1 = X + R*sin(Fi);
  32.      Y1 = Y - R*cos(Fi);
  33.      X2 = X + R*cos(30)*sin(Fi)*3/4;
  34.      Y2 = Y - R*sin(30)*cos(Fi)*3/4;
  35.      X3 = X + R*cos(30)*sin(Fi);
  36.      Y3 = Y + R*sin(30)*cos(Fi);
  37.      X4 = X - R*sin(Fi)*3/4;
  38.      Y4 = Y + R*cos(Fi)*3/4;
  39.      X5 = X - R*cos(30)*sin(Fi);
  40.      Y5 = Y + R*sin(30)*cos(Fi);
  41.      X6 = X - R*cos(30)*sin(Fi)*3/4;
  42.      Y6 = Y - R*sin(30)*cos(Fi)*3/4;
  43.     SDL_RenderDrawLine(renderer,X1,Y1,X2,Y2);
  44.     SDL_RenderDrawLine(renderer,X2,Y2,X3,Y3);
  45.     SDL_RenderDrawLine(renderer,X3,Y3,X4,Y4);
  46.     SDL_RenderDrawLine(renderer,X4,Y4,X5,Y5);
  47.     SDL_RenderDrawLine(renderer,X5,Y5,X6,Y6);
  48.     SDL_RenderDrawLine(renderer, X6,Y6,X1,Y1);
  49. }
  50.  
  51. int main(int argc, char* argv[])
  52. {
  53.     if (SDL_Init(SDL_INIT_VIDEO) == 0) {
  54.         SDL_Window* window = NULL;
  55.         SDL_Renderer* renderer = NULL;
  56.  
  57.         if (SDL_CreateWindowAndRenderer(640, 480, 0, &window, &renderer) == 0) {
  58.             SDL_bool done = SDL_FALSE;
  59.  
  60.             while (!done) {
  61.                 SDL_Event event;
  62.  
  63.                 SDL_SetRenderDrawColor(renderer, 0, 0, 0, SDL_ALPHA_OPAQUE);
  64.                 SDL_RenderClear(renderer);
  65.  
  66.                 SDL_SetRenderDrawColor(renderer, 255, 255, 255, SDL_ALPHA_OPAQUE);
  67.                 SDL_RenderDrawLine(renderer, 320, 200, 300, 240);
  68.                 SDL_RenderDrawLine(renderer, 300, 240, 340, 240);
  69.                 SDL_RenderDrawLine(renderer, 340, 240, 320, 200);
  70.                 SDL_RenderPresent(renderer);
  71.                 cristall_1 C1(250,250,15,59,0,0);
  72.                 C1.DrawCristall(SDL_Renderer* renderer);
  73.                 while (SDL_PollEvent(&event)) {
  74.                     if (event.type == SDL_QUIT) {
  75.                         done = SDL_TRUE;
  76.                     }
  77.                 }
  78.             }
  79.         }
  80.  
  81.         if (renderer) {
  82.             SDL_DestroyRenderer(renderer);
  83.         }
  84.         if (window) {
  85.             SDL_DestroyWindow(window);
  86.         }
  87.     }
  88.     SDL_Quit();
  89.     return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement