Exemplo n.º 1
0
Arquivo: hwk1.cpp Projeto: Tampy/CS537
void animate(int i)
{
	GLfloat x, y;
	pointNode * last;
	if(!bPaused && !bComplete)
	{
		GLfloat displacement = calcDisplacement(minX, maxX, minY, maxY);
		
		last = curr;
		randomDisplacement(displacement, x, y);
		curr = AddNode(curr, curr->x + x, curr->y + y);
		count = pointCount(head);

		glutPostRedisplay();
		//We only want to keep going if 
		if(checkNode(curr, minX, maxX, minY, maxY))
		{
			//keep a roughly constat fps
			glutTimerFunc(17, animate, 0);
		}else
		{
			findExitPoint(last, curr);
			bComplete = true;
		}
	}
}
Exemplo n.º 2
0
 /**
  * performs one sweep, which means Nx*Ny random updates
  */
 double performSweep() {
     int overlap = 0;
     #pragma omp parallel for
     for(int n=0; n<Nx*Ny; n++) {
         int i = randomIndex(gen);
         disc_t temp = discs[i];
         double dx = randomDisplacement(gen);
         double dy = randomDisplacement(gen);
         temp.x += dx;
         temp.y += dy;
         if(doesOverlap(temp, i))
             overlap++;
         else
             discs[i] = temp;
     }
     return ((double) overlap)/(Nx*Ny);
 }