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

📄 sphinx.c

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

/* he so doi tu do sang radian */
#define RADS 0.017453293
double curangle = 0.0;
double curx, cury;

void lineforward(double angle, double length)
{
  curangle += angle;
  curx += length*cos(curangle*RADS);
  cury += length*sin(curangle*RADS);
  lineto(curx, cury);
}

void moveforward(double angle, double length)
{
  curangle += angle;
  curx += length*cos(curangle*RADS);
  cury += length*sin(curangle*RADS);
  moveto(curx, cury);
}

void Sphinx(double angle, double length, int level, int leftright)
{
  double len4, len2, len1, oldx, oldy, oldangle;
  if (leftright)
  {
    if (level == 0)
    {
      len1 = length / 3;
      lineforward(angle, length);
      lineforward(-120,len1*2);
      lineforward(-120,len1);
      lineforward(+60,len1);
      lineforward(-60,len1);
    }
    else
    {
      Sphinx(angle, length, 0, leftright);
      len4 = length / 4;
      Sphinx(240, len4, 0, 1);
      moveforward(240, len4);
      Sphinx(0, len4, 0, 1);
      moveforward(240, len4);
      Sphinx(0, len4, 0, 1);
      moveforward(240, len4);
      Sphinx(0, len4, 0, 1);
      moveforward(240, len4);
      moveforward(-120, len4*2/3);
      Sphinx(0, len4, 0, 0);
      moveforward(240, len4);
      Sphinx(0, len4, 0, 0);
      moveforward(-180, len4*2/3);
      Sphinx(-120, len4, 0, 0);
      moveforward(240, len4/3);
      Sphinx(-240, len4, 0, 1);
      moveforward(240, len4);
      Sphinx(0, len4, 0, 1);
      moveforward(240, len4);
      Sphinx(-60, len4, 0, 0);
      moveforward(-180, len4*2/3);
      lineforward(-60, len4);
      moveforward(60, len4/3);
      moveforward(-120, len4);
      Sphinx(-180, len4, 0, 0);
    }
  }
  else
  {
    if (level == 0)
    {
      len1 = length / 3;
      lineforward(angle, length);
      lineforward(-120,len1);
      lineforward(-60,len1);
      lineforward(60,len1);
      lineforward(-120,len1*2);
    }
    else
    {
      Sphinx(angle, length, 0, leftright);
      len4 = length / 4;
    }
  }
}

void main()
{
  int gr_drive = DETECT, gr_mode;

  initgraph(&gr_drive, &gr_mode, "");
  moveto(10, 470);
  curx = 10;
  cury = 470;
  Sphinx(0, 600, 1, 1);
  getch();
  closegraph();
}

⌨️ 快捷键说明

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