node *gridDraw(int row,int column) { int i,j ; node *head=createQue(); widthOfOneGrid = screenWidth / row; heightOfOneGrid = screenHeight / column; GLfloatPoint point; for(i=0;i<screenHeight;i+=heightOfOneGrid) { for(j=0;j<screenWidth;j+=widthOfOneGrid) { point.x = j; point.y = i; pushPoint(head,point); } } return head; }
/* initialize queue, hash table, user_board etc TRUE if success */ BOOL initMemo() { DEBUG("IN"); if (!que || !ht) { end(); } createQue(que, QUEUE_MAXSIZE); if (!que) { ERROR("create queue failed"); return FALSE; } ht = createHashTable(HASHTABLE_MAXSIZE); if (!ht) { ERROR("create hash table failed"); destroyQue(que); return FALSE; } DEBUG("OUT"); return TRUE; }
int main(int argc, char *argv[]) { int i,j,n,nx,ny,cnt=0,totalCnt; int istart,iend,jstart,jend,x,y; float minX,maxX,minY,maxY,alpha; float **mesh; char fileName[100]; FILE *in,*out; void slowHull(Domain *D,float **mesh,int cnt,Point *sites); void createQue(Domain *D,Point *sites,int cnt); void clean(Domain *D); Point *sites; Domain *D; Edge *eg; if(argc < 1) { printf("voroid [file]\n"); exit(0); } sprintf(fileName,"%s",argv[1]); in=fopen(fileName,"r"); while(fscanf(in,"%d %d",&x,&y)!=EOF) cnt++; close(in); sites = (Point *)malloc(cnt*sizeof(Point )); in=fopen(fileName,"r"); n=0; while(fscanf(in,"%d %d",&x,&y)!=EOF) { sites[n].x=x; sites[n].y=y; n++; } close(in); nx=11; ny=11; mesh = (float **)malloc(nx*sizeof(float *)); for(i=0; i<nx; i++) mesh[i] = (float *)malloc(ny*sizeof(float )); for(i=0; i<nx; i++) for(j=0; j<ny; j++) mesh[i][j]=0.0; // slowHull(D,mesh,cnt,sites); // fastHull(D,cnt,sites); totalCnt=cnt/2; D->queList = (QueElement *)malloc(totalCnt*sizeof(QueElement )); createQue(D,sites,cnt); /* eg=D->hull->eg; while(eg) { istart=sites[eg->start].x; jstart=sites[eg->start].y; iend=sites[eg->end].x; jend=sites[eg->end].y; printf("start=%d : (%d,%d), end=%d : (%d,%d) \n",eg->start,istart,jstart,eg->end,iend,jend); for(i=istart; i<=iend; i++) { alpha=(float)(jend-jstart)/(float)(iend-istart); for(i=istart; i<=iend; i++) { j=alpha*(i-istart)-jstart; mesh[i][j]=1; } } eg=eg->next; } */ //print sprintf(fileName,"lala"); out=fopen(fileName,"w"); for(i=0; i<nx; i++) for(j=0; j<ny; j++) if(mesh[i][j]>0) fprintf(out,"%d %d %g\n",i,j,mesh[i][j]); fclose(out); //clear free(sites); // clean(D); return 0; }