All pastes #906095 Raw Edit

Unnamed

public text v1 · immutable
·published 2008-02-16 09:20 UTC
rendered paste body
void Rand(int iT,int iHeight,int iWidth,std::vector<float> & fGrid,int iCenterX,int iCenterY)
{	
	static int iRand[32];
	static int iCoolDown = 0;
	if (!iT)
	{
		int k = 0;
		while(k < 32)
			iRand[k++] = rand()%4;
	}

	int iIterator;
	int k = 0;
	if(!iCoolDown)
	{
		int iTemp = rand()%16;
		iRand[iTemp] = rand()%4;
		//iRand[k+1] = iT;

		if(iTemp < 4)
			iCoolDown = 96;
	}
	else
	{
		iRand[16 + (iCoolDown%16)-8] = rand()%4;
		iCoolDown--;
	}

	for (int i = 0; i < iHeight; i++)
	{
		for (int j = 0; j < iWidth; j++)
		{
			
			float fX = (float)(i-iCenterX)/(float)(iHeight);
			float fY = (float)(j-iCenterY)/(float)(iWidth);
			
			iIterator = 0;
			while( fX < 4 && fY < 4)
			{
				if(iRand[iIterator] == 0)
				{
					float fTemp = fX;
					fX = fY/2;
					fY = fTemp*2;
				}
				else if(iRand[iIterator] == 1)
				{
					float fTemp = fY;
					fY = cos(fX);
					fX = cos(fTemp);
				}
				else if(iRand[iIterator] == 2)
				{
					fX = fX*fX;
					fY = 1./fY;
				}
				else if(iRand[iIterator] == 3)
				{
					float fTemp = fY;
					fY = (fY-fX) * fY;
					fX = (fX-fTemp) * fX;
				}
				
				if(iIterator >= 32)
					break;
				
				iIterator++;
			}
			fGrid[i * iWidth + j] = 0.0625 + (float)(iIterator-32)/128.0f;
		}
	}
}