Point3d findPrecisionOpposition(Point3d P) {
    int q=quadrant(P);
    Point3d p=null;
    switch(q) {
    case 0: p=new Point3d(1,0,0);
	break;
    case 1: p=new Point3d(1,0,0);
	break;
    case 2: p=new Point3d(1,0,0);
	break;
    case 3: p=new Point3d(1,0,0);
	break;
    case 4: p=new Point3d(0,1,0);
	break;
    case 5: p=new Point3d(0,0,1);
	break;
    case 6: p=new Point3d(0,1,0);
	break;
    case 7: p=new Point3d(-1,0,0);
	break;
    }
    return p;
}