/*2007-6-20 画一些彩色点 winTC测试*/
#include <DOS.H>
#include<graphics.h>
#include<stdlib.h>
#include<math.h>
#define maxcount 100
#define distance 30
#define CR 1
main()
{
union REGS r;
int dr=DETECT,mode=0;
int mx,my,mc;
int i, color;
double fx,fy,force=0;
double x, y, s;
int a, b;
static int inc = 0;
initgraph(&dr,&mode,"");
r.x.ax=0;
int86(0X33,&r,&r);
while (!kbhit())
{
r.x.ax=3;
int86(0x33,&r,&r); /*获取鼠标信息*/
mx=r.x.cx; /*x坐标*/
my=r.x.dx; /*y坐标*/
mc=r.x.bx;
if (mc == 1) /*单击左键*/
{
cleardevice();
outtextxy(getmaxx()/2-10, getmaxy()/2-10, " I love you ");
inc = 0;
continue;
}
inc++;
if (inc == 500)
{
cleardevice();
inc = 0;
}
for (i=0;i<maxcount;i++)
{
x=random(640);
y=random(480);
fx=mx-x;
fy=my-y;
s=sqrt(fx*fx+fy*fy);
if (s>distance+inc)
{
i--;
continue;
}
color = random(16)+1;
setcolor(color);
setfillstyle(1,color); /*设置填充样式和颜色*/
fillellipse(x,y,CR,CR); /*画出并填充一椭圆,第一个CR为x方向半径,第二个为y方向半径*/
}
}
closegraph();
}