/** * Transforms a pixel x coordinate to a horizontal world coordinate. * @param x the pixel x coordinate. * @return the horizontal world coordinate. */ public double pixelToWorldHorizontal(int x) { return _hp.v(_ts.x(x)); }
/** * Transforms a pixel y coordinate to a vertical world coordinate. * @param y the pixel y coordinate. * @return the vertical world coordinate. */ public double pixelToWorldVertical(int y) { return _vp.v(_ts.y(y)); }
/** * Returns a new transcaler that combines this transcaler with projectors. * The returned transcaler includes the transforms of the projectors. * Does not change this transcaler. * @param xp the projector for x coordinates. * @param yp the projector for y coordinates. * @return the new transcaler. */ public Transcaler combineWith(Projector xp, Projector yp) { AxisScale xsc = xp.getScale(); AxisScale ysc = yp.getScale(); double x1v = (xsc==AxisScale.LOG10)?log10(xp.v(_x1u)):xp.v(_x1u); double x2v = (xsc==AxisScale.LOG10)?log10(xp.v(_x2u)):xp.v(_x2u); double y1v = (ysc==AxisScale.LOG10)?log10(yp.v(_y1u)):yp.v(_y1u); double y2v = (ysc==AxisScale.LOG10)?log10(yp.v(_y2u)):yp.v(_y2u); return new Transcaler(x1v,y1v,x2v,y2v,_x1d,_y1d,_x2d,_y2d, xsc, ysc); }
private Cdouble pointToComplex(int x, int y) { Transcaler ts = _tile.getTranscaler(); Projector hp = _tile.getHorizontalProjector(); Projector vp = _tile.getVerticalProjector(); double xu = ts.x(x); double yu = ts.y(y); double xv = hp.v(xu); double yv = vp.v(yu); return roundToReal(new Cdouble(xv,yv)); }
public void testProjectionLog () { Projector p = new Projector(0.1, 100, 0.0, 1.0, AxisScale.LOG10); assertVeryClose(0.1, p.v(p.u(0.1))); assertVeryClose(2, p.v(p.u(2))); assertVeryClose(56.7785, p.v(p.u(56.7785))); assertVeryClose(0.0, p.u(p.v(0.0))); assertVeryClose(0.25, p.u(p.v(0.25))); assertVeryClose(0.6173, p.u(p.v(0.6173))); }