⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rrotate.c

📁 Many C samples. It is a good sample for students to learn C language.
💻 C
字号:
/* Rectangle rotate */
#include <conio.h>
#include <graphics.h>
#include <math.h>
#include <stdlib.h>
#include <dos.h>

/* he so doi tu do sang radian */
#define RADS 0.017453293

void rectangle_rotate(int xc, int yc, int width, int height)
{
  float x1, y1, x2, y2, x3, y3, x4, y4, angle;
  float oldx1, oldy1, oldx2, oldy2, oldx3, oldy3, oldx4, oldy4;

  x2 = x3 = xc + (float)width / 2;
  x1 = x4 = xc - (float)width / 2;
  y1 = y2 = yc - (float)height / 2;
  y3 = y4 = yc + (float)height / 2;
  angle = 3 * RADS;
  do {
    setcolor(random(15) + 1);
    moveto(x1, y1);
    lineto(x2, y2);
    lineto(x3, y3);
    lineto(x4, y4);
    lineto(x1, y1);
    delay(100);
    setcolor(BLACK);
    moveto(x1, y1);
    lineto(x2, y2);
    lineto(x3, y3);
    lineto(x4, y4);
    lineto(x1, y1);
    oldx1 = x1;
    oldy1 = y1;
    x1 = ((oldx1 - xc) * cos(angle)) + ((oldy1 - yc) * sin(angle)) + xc;
    y1 = ((oldy1 - yc) * cos(angle)) - ((oldx1 - xc) * sin(angle)) + yc;
    oldx2 = x2;
    oldy2 = y2;
    x2 = ((oldx2 - xc) * cos(angle)) + ((oldy2 - yc) * sin(angle)) + xc;
    y2 = ((oldy2 - yc) * cos(angle)) - ((oldx2 - xc) * sin(angle)) + yc;
    oldx3 = x3;
    oldy3 = y3;
    x3 = ((oldx3 - xc) * cos(angle)) + ((oldy3 - yc) * sin(angle)) + xc;
    y3 = ((oldy3 - yc) * cos(angle)) - ((oldx3 - xc) * sin(angle)) + yc;
    oldx4 = x4;
    oldy4 = y4;
    x4 = ((oldx4 - xc) * cos(angle)) + ((oldy4 - yc) * sin(angle)) + xc;
    y4 = ((oldy4 - yc) * cos(angle)) - ((oldx4 - xc) * sin(angle)) + yc;
  } while (!kbhit());

}

void main()
{
  int gr_drive = DETECT, gr_mode;
  int xc, yc, width, height;

  initgraph(&gr_drive, &gr_mode, "");
  randomize();
  xc = getmaxx() / 2;
  yc = getmaxy() / 2;
  width = random(100) + 200;
  height = random(100) + 100;
  printf("Width  = %d", width);
  printf("\nHeight = %d", height);
  rectangle_rotate(xc, yc, width, height);

  getch();
  closegraph();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -