1. 编程学习网 > 编程教程 > C语言教程 > C语言经典案例:一个最优美的图案(在TC中实现)。

C语言经典案例:一个最优美的图案(在TC中实现)。

需求描写:一个最幽美的图案(在TC中实现)。

C语言案例剖析:无。

程序源代码:

实现代码如下:

#include "graphics.h"

#include "math.h"

#include "dos.h"

#include "conio.h"

#include "stdlib.h"

#include "stdio.h"

#include "stdarg.h"

#define MAXPTS 15

#define PI 3.1415926

struct PTS {

int x,y;

};

double AspectRatio=0.85;

void LineToDemo(void)

{

struct viewporttype vp;

struct PTS points[MAXPTS];

int i, j, h, w, xcenter, ycenter;

int radius, angle, step;

double rads;

printf(" MoveTo / LineTo Demonstration" );

getviewsettings( &vp );

h = vp.bottom - vp.top;

w = vp.right - vp.left;

xcenter = w / 2; /* Determine the center of circle */

ycenter = h / 2;

radius = (h - 30) / (AspectRatio * 2);

step = 360 / MAXPTS; /* Determine # of increments */

angle = 0; /* Begin at zero degrees */

for( i=0 ; i<MAXPTS ; ++i ){ /* Determine circle intercepts */

rads = (double)angle * PI / 180.0; /* Convert angle to radians */

points[i].x = xcenter + (int)( cos(rads) * radius );

points[i].y = ycenter - (int)( sin(rads) * radius * AspectRatio );

angle += step; /* Move to next increment */

}

circle( xcenter, ycenter, radius ); /* Draw bounding circle */

for( i=0 ; i<MAXPTS ; ++i ){ /* Draw the cords to the circle */

for( j=i ; j<MAXPTS ; ++j ){ /* For each remaining intersect */

moveto(points[i].x, points[i].y); /* Move to beginning of cord */

lineto(points[j].x, points[j].y); /* Draw the cord */

}

}

}

int main()

{

int driver,mode;

driver=CGA;mode=CGAC0;

initgraph(&driver,&mode,"");

setcolor(3);

setbkcolor(GREEN);

LineToDemo();

}

本文由IT教学网整理发布,转载请注明出处:http://www.itjx.com/jiaocheng/cyuyan/1002.html

联系我们

在线咨询:点击这里给我发消息

咨询电话:400-998-2681

工作时间:7*24小时无休