红花绿叶生长

HHLYSZ.C



/* 红花绿叶生长 HHLYSZ.C 程序设计: 谢 春 2000.1.1.*/
/* a, b : 背景颜色 a=1--6 画笔颜色 b=9--13 */
/* x, y : 水平移动图形 x=0--639 垂直移动图形 y=0--479 */
/* r1,r2: 水平方向半径 r1=0--320 垂直方向半径 r2=0--240 */
/* i, j : 心形曲线叶片 i=1--24 心形曲线弧度 j=0--2*PI */

#include"graphics.h" /*调用图形库函数 */
#include"math.h" /*调用数学函数 */
#include"stdio.h" /*调用标准I/O函数*/
#define PI 3.141596 /*宏定义PI字符串 */

main() /*主函数*/
{
int a=1,b,i=2,n,r1,r2,x=155,y=250; /*定义整型变量a,b,x,y,r1,r2,i*/
float j; /*定义单精度浮点型变量*/
int gdriver=DETECT,gmode; /*定义整型变量gdriver,gmode*/
initgraph(&gdriver,&gmode,"c:\\tc"); /*定义变量后,初始化图形系统*/

cleardevice();
setbkcolor(a);
printf("\n");
printf("\n");
printf(" 红花绿叶生长\n");
printf(" C 语言图形程序设计\n");
printf("\n");
printf(" 画像素点函数\n");
printf(" putpixel(x-r1*cos(i),\n");
printf(" y-r2*sin(j),b)\n");
printf(" 绘制图形语句\n");
printf(" 红花绿叶生长\n");
printf(" for (r2=80;r2<=160;r2+=1)\n");
printf(" for (j=0;j<=2*PI;j+=PI/999)\n");
printf(" {\n");
printf(" b=10,r1=0.85*r2\n");
printf(" putpixel(x-r1*cos(i*j)*cos(j),\n");
printf(" y-r2*cos(i*j)*sin(j),b)\n");
printf(" }\n");
printf("\n");
printf(" 水平垂直增大半径,模拟红花绿叶生长\n");
printf("\n");
printf(" 按任意键继续 !\n");
setcolor(3);
setlinestyle(0,0,3); /*实线线宽3*/
rectangle(2,2,637,477); /*绘制图纸边框*/
setcolor(2);
setlinestyle(0,0,1); /*实线线宽1*/
rectangle(6,6,318,473); /*绘制左窗口框*/
rectangle(322,6,633,473); /*绘制右窗口框*/
getch();

/*画一幅,擦一幅*/
for (n=0;n<3;n++) /*设置循环演示次数*/
{
setviewport(323,7,632,472,1); /*设置右窗口*/

for (r2=80;r2<=170;r2+=1)
for (j=0;j<=2*PI;j+=PI/999) /*绘制绿叶图形*/
{
b=10,i=2,r1=0.85*r2;
putpixel(x-r1*cos(i*j)*cos(j),y-r2*cos(i*j)*sin(j),b);
}

for (r2=0;r2<=50;r2+=1)
for (j=0;j<=2*PI;j+=PI/999) /*绘制黄蕊图形*/
{
b=14,r1=r2,i=4;
putpixel(x-r1*cos(i*j)*cos(j),y-r2*cos(i*j)*sin(j),b);
}

for (r2=60;r2<=125;r2+=1)
for (j=0;j<=2*PI;j+=PI/999) /*绘制红花图形*/
{
b=13,r1=r2;
putpixel(x-r1*cos(i*j)*cos(j),y-r2*cos(i*j)*sin(j),b);
}
getch();
clearviewport();
}

closegraph(); /*关闭图形系统,返回文本模式*/
}