prosette.c
来自「Many C samples. It is a good sample for 」· C语言 代码 · 共 60 行
C
60 行
/* Prime Rosette */
#include <conio.h>
#include <graphics.h>
#include <math.h>
#define MAX 15
#define RADIUS (getmaxy()/2-10)
#define xc (getmaxx()/2)
#define yc (getmaxy()/2)
/* 1 / sqrt(2) */
#define FCT 0.7071067
/* he so doi tu do sang radian */
#define RADS 0.017453293
typedef struct tagpoint{
double x, y;
} POINT;
void prosette(int n)
{
int i, j;
POINT p[MAX];
double angle = 0.0;
for (i=0; i<n; i++)
{
p[i].x = RADIUS * sin(angle);
p[i].y = RADIUS * cos(angle);
angle += RADS*360/n;
}
/*
setcolor(WHITE);
moveto(xc+p[0].x, yc-p[0].y);
for (i=1; i<n; i++)
lineto(xc+p[i].x, yc-p[i].y);
lineto(xc+p[0].x, yc-p[0].y);
*/
setcolor(YELLOW);
for (i=0; i<n-1; i++)
for (j=i+1; j<n; j++)
if (j-i>1 && ((i!=0) || (j!=n-1)))
line(xc+p[i].x, yc-p[i].y, xc+p[j].x, yc-p[j].y);
}
void main()
{
int gr_drive = DETECT, gr_mode;
int n;
printf("\nCho biet so canh (5..%d): ", MAX);
do {
scanf("%d", &n);
} while (n < 5 || n > MAX);
initgraph(&gr_drive, &gr_mode, "");
prosette(n);
getch();
closegraph();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?