All pastes #539582 Raw Edit

Something

public cpp v1 · immutable
·published 2007-06-05 08:33 UTC
rendered paste body
bool alarge = _mB < _mA;int a = alarge ? _mB :_mA;int b = alarge ? _mA :_mB;int aa = a*a;int bb = b*b;int d2 = 0;int d1 = 4*bb - 4*aa*b + aa;int x = 0;int y = b;int deltaE = 12*bb;int deltaSE1 = 12*bb + 8*aa - 8*aa*b;int deltaSE2 =8*bb + 12*aa - 8*aa*b;int deltaS = 12*aa - 8*aa*b;int deltaSQEtoE = 8*bb;int deltaSQEtoSE1 = 8*bb;int deltaSQEtoSE2 = 8*bb;int deltaSQSE1toE = 8*bb;int deltaSQSE1toSE1 =8*bb + 8 * aa;int deltaSQSE1toSE2 =8*bb + 8 * aa;int deltaSQSE1toS =8 *aa;int deltaSQSE2toSE2 =8*bb + 8 *aa;int deltaSQSE2toS = 8 * aa;int deltaSQStoSE2 = 8 * aa;int deltaSQStoS = 8 * aa;int GradX =2 * bb;int GradY = 2*aa*b - aa;int deltaEtoGradX = 2*bb;int deltaSEtoGradX = 2*bb;int deltaSEtoGradY = -aa; //set pixel with symmetry. if (alarge)   DrawSymmetricalPoints(y,x,window);else    DrawSymmetricalPoints(x,y,window);  while(GradY > GradX && y > 0){ //check if still in quadrant 1if (d1 < 0){ //East  d1 += deltaE ;  deltaE += deltaSQEtoE;  deltaSE1 += deltaSQEtoSE1;  deltaSE2 += deltaSQEtoSE2;  GradX += deltaEtoGradX;}else{   d1 += deltaSE1;   deltaE += deltaSQSE1toE;   deltaSE1 += deltaSQSE1toSE1;   deltaSE2 += deltaSQSE1toSE2;   deltaS += deltaSQSE1toS;   GradX += deltaSEtoGradX;   GradY += deltaSEtoGradY;   --y;}++x;if (alarge)   DrawSymmetricalPoints(y,x,window);else    DrawSymmetricalPoints(x,y,window);}//bottom region.d2 = 4*bb*x*x + 4*bb*x + bb + 4*aa*y*y - 8*aa*y + 4*aa - 4*aa*bb; //guh!while (y > 0) { //still inside bottom regionif (d2 < 0) { //South east    d2 += deltaSE2;    deltaSE2 += deltaSQSE2toSE2;    deltaS += deltaSQSE2toS;    ++x;} else {    d2 += deltaS;    deltaSE2 += deltaSQStoSE2;    deltaS += deltaSQStoS;}--y;if (alarge)   DrawSymmetricalPoints(y,x,window);else    DrawSymmetricalPoints(x,y,window);}