#include #include #include #include "GrWin.h" #define X(I) ((float)cos((I)*PAI2/N)) #define Y(I) ((float)sin((I)*PAI2/N)) #define RAND(n) ((rand()-1)/(RAND_MAX/(n))) #define BFFLEN 6 int main() { char buff[BFFLEN]; float PAI2=6.28319f, XM, YM; int MCPY=4, MXOR=7, NLBRS=0, NLHCH=0; int N, NC, I, J, K=1, IBS, IBH, LLW, LLH; printf("N = "); N = atoi(fgets(buff,BFFLEN,stdin)); GWopen(0); NC = GWncolor(); GWvport(0.0f,0.0f,1.0f,1.0f); if(GWsize(5, &LLW, &LLH)) { if(LLW > LLH) LLW = LLH; else LLH = LLW; GWsize(-5, &LLW, &LLH); GWsize(-3, NULL, NULL); } GWindow(-1.1f,-1.1f,1.1f,1.1f); GWsetpen(K,-1,-1,MXOR); for(I=0; I < N - 1; ++I) { for(J=I+1; J < N; ++J) { K %= NC; GWsetpen(K,-1,-1,-1); GWline(X(I),Y(I),X(J),Y(J)); ++K; } } GWsetpen(-999, -1, -1, MCPY); GWsetbrs(-1,NLBRS,NLHCH); GWrect(-1.05f, -1.05f, 1.05f, 1.05f); GWellipse(-1.05f, -1.05f, 1.05f, 1.05f); printf("Click L-button at any point to fill the area, \n"); printf(" or at any point near the center to quit.\n"); GWcappnt(&XM,&YM,"Click at any point"); while(XM*XM+YM*YM > 0.1) { K = RAND(36); // 0..19: Windows Palette, 20..35: Custom Palette IBS = 1 + RAND(2); IBH = 1 + RAND(5); GWsetbrs(K,IBS,IBH); GWflood(XM,YM); GWcappnt(&XM,&YM,"Click at any point"); } GWquit(); return 0; }