private void doZoomOperations( int ychange ) {
	if (proportionalZoom) {
	    if (reverseZoom) {
		if ((distanceFromCenter -
		     (zoomMul*ychange*distanceFromCenter/100.0)) >
		    minRadius) {
		    distanceFromCenter -= (zoomMul*ychange*
					   distanceFromCenter/100.0);
		}
		else {
		    distanceFromCenter = minRadius;
		}
	    }
	    else {
		if ((distanceFromCenter +
		     (zoomMul*ychange*distanceFromCenter/100.0))
		    > minRadius) {
		    distanceFromCenter += (zoomMul*ychange*
					   distanceFromCenter/100.0);
		}
		else {
		    distanceFromCenter = minRadius;
		}
	    }
	}
	else {
	    if (stopZoom) {
		if (reverseZoom) {
		    if ((distanceFromCenter - ychange*zoomMul) > minRadius) {
			distanceFromCenter -= ychange*zoomMul;
		    }
		    else {
			distanceFromCenter = minRadius;
		    }
		}
		else {
		    if ((distanceFromCenter + ychange*zoomMul) > minRadius) {
			distanceFromCenter += ychange * zoomMul;
		    }
		    else {
			distanceFromCenter = minRadius;
		    }
		}
	    }
	    else {
		if (reverseZoom) {
		    distanceFromCenter -= ychange*zoomMul;
		}
		else {
		    distanceFromCenter += ychange*zoomMul;
		}
	    }
	}
    }