pt minPT = new pt(10000,10000); pt maxPT = new pt(-10000,-10000); void minmax (Polyloop poly) { minPT.x = 10000; minPT.y = 10000; maxPT.x = -10000; maxPT.y = -10000; for (int i=0; i maxPT.x) maxPT.x = poly.P[i].x; if (poly.P[i].y > maxPT.y) maxPT.y = poly.P[i].y; // println("Min = " + minPT.x + ", " + minPT.y); // println("Max = " + maxPT.x + ", " + maxPT.y); } } pt quantize (pt P) { float x = P.x; float y = P.y; pt nP = new pt(0,0); nP.x = (float) (int) ( ( (x-minPT.x)/(maxPT.x - minPT.x) ) * (4095.0f) + .5); nP.y = (float) (int) ( ( (y-minPT.y)/(maxPT.y - minPT.y) ) * (4095.0f) + .5); return nP; } pt dequantize (pt P) { float x = P.x; float y = P.y; pt nP = new pt(0,0); //nP.x = (float) (int) ( ( ( (x*(maxPT.x - minPT.x) + minPT.x) ) / 4095.0f ) + .5); //nP.y = (float) (int) ( ( ( (y*(maxPT.y - minPT.y) + minPT.y) ) / 4095.0f ) + .5); println(x+y); nP.x = (float) (int)(float) ( ( (x*(maxPT.x - minPT.x) ) / 4095.0f ) + minPT.x + .5); nP.y = (float) (int)(float) ( ( (y*(maxPT.y - minPT.y) ) / 4095.0f ) + minPT.y + .5); return nP; }