public double getDistanceFromCenter(Point2D p) { double dx = lensShape.getCenterX() - p.getX(); double dy = lensShape.getCenterY() - p.getY(); dx *= getRatio(); return Math.sqrt(dx * dx + dy * dy); } }
public void setRadius(double viewRadius) { double x = lensShape.getCenterX(); double y = lensShape.getCenterY(); double viewRatio = getRatio(); lensShape.setFrame( x - viewRadius / viewRatio, y - viewRadius, 2 * viewRadius / viewRatio, 2 * viewRadius); }
double ratio = lens.getRatio();
double ratio = lens.getRatio();
double ratio = lens.getRatio();
/** override base class to un-project the fisheye effect */ private Point2D _inverseTransform(Point2D viewPoint) { viewPoint = delegate.inverseTransform(viewPoint); Point2D viewCenter = lens.getCenter(); double viewRadius = lens.getRadius(); double ratio = lens.getRatio(); double dx = viewPoint.getX() - viewCenter.getX(); double dy = viewPoint.getY() - viewCenter.getY(); // factor out ellipse dx *= ratio; Point pointFromCenter = Point.of(dx, dy); PolarPoint polar = PolarPoint.cartesianToPolar(pointFromCenter); double radius = polar.radius; if (radius > viewRadius) { return viewPoint; } double mag = lens.getMagnification(); radius /= mag; polar = polar.newRadius(radius); Point projectedPoint = PolarPoint.polarToCartesian(polar); projectedPoint = Point.of(projectedPoint.x / ratio, projectedPoint.y); Point2D translatedBack = new Point2D.Double( projectedPoint.x + viewCenter.getX(), projectedPoint.y + viewCenter.getY()); return translatedBack; }
Point2D viewCenter = lens.getCenter(); double viewRadius = lens.getRadius(); double ratio = lens.getRatio(); double dx = viewPoint.getX() - viewCenter.getX(); double dy = viewPoint.getY() - viewCenter.getY();
double ratio = lens.getRatio();
double ratio = lens.getRatio();
/** override base class to un-project the fisheye effect */ public Point2D inverseTransform(Point2D viewPoint) { Point2D viewCenter = lens.getCenter(); double viewRadius = lens.getRadius(); double ratio = lens.getRatio(); double dx = viewPoint.getX() - viewCenter.getX(); double dy = viewPoint.getY() - viewCenter.getY(); // factor out ellipse dx *= ratio; Point pointFromCenter = Point.of(dx, dy); PolarPoint polar = PolarPoint.cartesianToPolar(pointFromCenter); double radius = polar.radius; if (radius > viewRadius) { return delegate.inverseTransform(viewPoint); } double mag = lens.getMagnification(); radius /= mag; polar = polar.newRadius(radius); Point projectedPoint = PolarPoint.polarToCartesian(polar); projectedPoint = Point.of(projectedPoint.x / ratio, projectedPoint.y); Point2D translatedBack = new Point2D.Double( projectedPoint.x + viewCenter.getX(), projectedPoint.y + viewCenter.getY()); return delegate.inverseTransform(translatedBack); }
double ratio = lens.getRatio(); double dx = viewPoint.getX() - viewCenter.getX(); double dy = viewPoint.getY() - viewCenter.getY();