java.awt.geom.AffineTransform.inverseTransform()方法的使用及代码示例

x33g5p2x  于2022-01-15 转载在 其他  
字(8.4k)|赞(0)|评价(0)|浏览(130)

本文整理了Java中java.awt.geom.AffineTransform.inverseTransform()方法的一些代码示例,展示了AffineTransform.inverseTransform()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。AffineTransform.inverseTransform()方法的具体详情如下:
包路径:java.awt.geom.AffineTransform
类名称:AffineTransform
方法名:inverseTransform

AffineTransform.inverseTransform介绍

暂无

代码示例

代码示例来源:origin: dermotte/LIRE

  1. @Override
  2. public float[] applyInverse(float[] point) {
  3. // the brilliant java.awt.geom.AffineTransform implements transform for float[] but inverseTransform for double[] only...
  4. double[] double_point = new double[]{point[0], point[1]};
  5. double[] transformed = new double[2];
  6. try {
  7. affine.inverseTransform(double_point, 0, transformed, 0, 1);
  8. } catch (Exception e) {
  9. System.err.println("Noninvertible transformation.");
  10. }
  11. return new float[]{(float) transformed[0], (float) transformed[1]};
  12. }

代码示例来源:origin: dermotte/LIRE

  1. @Override
  2. public float[] applyInverse(float[] point) {
  3. // the brilliant java.awt.geom.AffineTransform implements transform for float[] but inverseTransform for double[] only...
  4. double[] double_point = new double[]{point[0], point[1]};
  5. double[] transformed = new double[2];
  6. try {
  7. affine.inverseTransform(double_point, 0, transformed, 0, 1);
  8. } catch (Exception e) {
  9. System.err.println("Noninvertible transformation.");
  10. }
  11. return new float[]{(float) transformed[0], (float) transformed[1]};
  12. }

代码示例来源:origin: dermotte/LIRE

  1. @Override
  2. public float[] applyInverse(float[] point) {
  3. // the brilliant java.awt.geom.AffineTransform implements transform for float[] but inverseTransform for double[] only...
  4. double[] double_point = new double[]{point[0], point[1]};
  5. double[] transformed = new double[2];
  6. try {
  7. affine.inverseTransform(double_point, 0, transformed, 0, 1);
  8. } catch (Exception e) {
  9. System.err.println("Noninvertible transformation.");
  10. }
  11. return new float[]{(float) transformed[0], (float) transformed[1]};
  12. }

代码示例来源:origin: dermotte/LIRE

  1. @Override
  2. public float[] applyInverse(float[] point) {
  3. // the brilliant java.awt.geom.AffineTransform implements transform for float[] but inverseTransform for double[] only...
  4. double[] double_point = new double[]{point[0], point[1]};
  5. double[] transformed = new double[2];
  6. try {
  7. affine.inverseTransform(double_point, 0, transformed, 0, 1);
  8. } catch (Exception e) {
  9. System.err.println("Noninvertible transformation.");
  10. }
  11. return new float[]{(float) transformed[0], (float) transformed[1]};
  12. }

代码示例来源:origin: geotools/geotools

  1. /**
  2. * Inverse transforms a point using the {@link #global} affine transform, and make sure that the
  3. * result point is outside the grid. This method is used for the transformation of a point which
  4. * shouldn't be found in the grid.
  5. *
  6. * @param source The source coordinate point.
  7. * @param target The target coordinate point (should not be {@code null}).
  8. * @throws NoninvertibleTransformException if the transform is non-invertible.
  9. * @todo Current implementation project an inside point on the nearest border. Could we do
  10. * something better?
  11. */
  12. private void inverseTransform(final Point2D source, final Point2D.Double target)
  13. throws NoninvertibleTransformException {
  14. if (global.inverseTransform(source, target) != target) {
  15. throw new AssertionError(); // Should not happen.
  16. }
  17. double x = target.x;
  18. double y = target.y;
  19. if (x >= 0 && x < width && y >= 0 && y < height) {
  20. // Project on the nearest border. TODO: Could we do something better here?
  21. x -= 0.5 * width;
  22. y -= 0.5 * height;
  23. if (Math.abs(x) < Math.abs(y)) {
  24. target.x = x > 0 ? width : -1;
  25. } else {
  26. target.y = y > 0 ? height : -1;
  27. }
  28. }
  29. }

代码示例来源:origin: geotools/geotools

  1. point.x = (i & 1) == 0 ? bounds.getMinX() : bounds.getMaxX();
  2. point.y = (i & 2) == 0 ? bounds.getMinY() : bounds.getMaxY();
  3. transform.inverseTransform(point, point);
  4. if (point.x < xmin) xmin = point.x;
  5. if (point.x > xmax) xmax = point.x;

代码示例来源:origin: geotools/geotools

  1. /**
  2. * Transform a point using the localization grid, transform it back using the inverse of the
  3. * specified affine transform, and returns the distance between the source and the resulting
  4. * point. This is used for assertions only.
  5. *
  6. * @param index The source point to test.
  7. * @param tr The affine transform to test.
  8. * @return The distance in grid coordinate. Should be close to 0.
  9. */
  10. private double distance(final Point2D index, final AffineTransform tr) {
  11. try {
  12. Point2D geoCoord = transform(index, null);
  13. geoCoord = tr.inverseTransform(geoCoord, geoCoord);
  14. return geoCoord.distance(index);
  15. } catch (TransformException exception) {
  16. // Should not happen
  17. throw new AssertionError(exception);
  18. } catch (NoninvertibleTransformException exception) {
  19. // Not impossible. What should we do? Open question...
  20. throw new AssertionError(exception);
  21. }
  22. }

代码示例来源:origin: geotools/geotools

  1. pts[6] = paintArea.getMinX();
  2. pts[7] = paintArea.getMaxY();
  3. worldToScreen.inverseTransform(pts, 0, pts, 0, 4);
  4. double xMin = Double.MAX_VALUE;
  5. double yMin = Double.MAX_VALUE;

代码示例来源:origin: geotools/geotools

  1. pts[6] = paintArea.getMinX();
  2. pts[7] = paintArea.getMaxY();
  3. worldToScreen.inverseTransform(pts, 0, pts, 0, 4);
  4. double xMin = Double.MAX_VALUE;
  5. double yMin = Double.MAX_VALUE;

代码示例来源:origin: geotools/geotools

  1. tr.inverseTransform(source, target);
  2. int previousX = (int) target.x;
  3. int previousY = (int) target.y;
  4. for (int iter = 0; iter < MAX_ITER; iter++) {
  5. getAffineTransform(target.x, target.y, tr);
  6. tr.inverseTransform(source, target);
  7. final int ix = (int) target.x;
  8. final int iy = (int) target.y;
  9. global.inverseTransform(source, target);
  10. double x, y;
  11. double bestX = x = target.x;
  12. previousY = (int) y;
  13. getAffineTransform(x, y, tr);
  14. tr.inverseTransform(source, target);
  15. x = target.x;
  16. y = target.y;

代码示例来源:origin: geotools/geotools

  1. Point2D screenPos = new Point2D.Double(x, y);
  2. Point2D worldPos = new Point2D.Double(x, y);
  3. at.inverseTransform(screenPos, worldPos);
  4. DirectPosition2D fromPos = new DirectPosition2D(worldPos.getX(), worldPos.getY());
  5. DirectPosition2D toPos = new DirectPosition2D();

代码示例来源:origin: com.github.kzwang/lire

  1. @Override
  2. public float[] applyInverse(float[] point) {
  3. // the brilliant java.awt.geom.AffineTransform implements transform for float[] but inverseTransform for double[] only...
  4. double[] double_point = new double[]{point[0], point[1]};
  5. double[] transformed = new double[2];
  6. try {
  7. affine.inverseTransform(double_point, 0, transformed, 0, 1);
  8. } catch (Exception e) {
  9. System.err.println("Noninvertible transformation.");
  10. }
  11. return new float[]{(float) transformed[0], (float) transformed[1]};
  12. }

代码示例来源:origin: com.github.kzwang/lire

  1. @Override
  2. public float[] applyInverse(float[] point) {
  3. // the brilliant java.awt.geom.AffineTransform implements transform for float[] but inverseTransform for double[] only...
  4. double[] double_point = new double[]{point[0], point[1]};
  5. double[] transformed = new double[2];
  6. try {
  7. affine.inverseTransform(double_point, 0, transformed, 0, 1);
  8. } catch (Exception e) {
  9. System.err.println("Noninvertible transformation.");
  10. }
  11. return new float[]{(float) transformed[0], (float) transformed[1]};
  12. }

代码示例来源:origin: geotools/geotools

  1. point2D.x = x;
  2. point2D.y = y;
  3. crsToGrid.inverseTransform(point2D, point2D);
  4. if (area == null || area.contains(point2D)) {
  5. coordinate.ordinates[xAxis] = point2D.x;

代码示例来源:origin: net.anwiba.commons/anwiba-commons-swing-core

  1. @Override
  2. public Point2D inverseTransform(final Point2D point) throws NoninvertibleTransformException {
  3. final Point2D transformedPoint = new Point2D.Double();
  4. getAffinTransform().inverseTransform(point, transformedPoint);
  5. return transformedPoint;
  6. }

代码示例来源:origin: sc.fiji/TrakEM2_

  1. public Point2D.Double inverseTransformPoint(final double px, final double py) {
  2. final Point2D.Double pSrc = new Point2D.Double(px, py);
  3. if (this.at.isIdentity()) return pSrc;
  4. final Point2D.Double pDst = new Point2D.Double();
  5. try {
  6. //this.at.createInverse().transform(pSrc, pDst);
  7. this.at.inverseTransform(pSrc, pDst);
  8. } catch (NoninvertibleTransformException nite) {
  9. IJError.print(nite);
  10. }
  11. return pDst;
  12. }

代码示例来源:origin: hneemann/Digital

  1. private Vector getPosVector(int x, int y) {
  2. try {
  3. Point2D.Double p = new Point2D.Double();
  4. transform.inverseTransform(new Point(x, y), p);
  5. return new Vector((int) Math.round(p.getX()), (int) Math.round(p.getY()));
  6. } catch (NoninvertibleTransformException e1) {
  7. throw new RuntimeException(e1);
  8. }
  9. }

代码示例来源:origin: hneemann/Digital

  1. private Vector getPosVector(int x, int y) {
  2. try {
  3. Point2D.Double p = new Point2D.Double();
  4. transform.inverseTransform(new Point(x, y), p);
  5. return new Vector((int) Math.round(p.getX()), (int) Math.round(p.getY()));
  6. } catch (NoninvertibleTransformException e1) {
  7. throw new RuntimeException(e1);
  8. }
  9. }

代码示例来源:origin: movsim/movsim

  1. static Point2D getTransformed(Point point, AffineTransform transform) throws NoninvertibleTransformException {
  2. final Point2D transformedPoint = new Point2D.Float();
  3. // convert from mouse coordinates to vehicle coordinates
  4. transform.inverseTransform(new Point2D.Float(point.x, point.y), transformedPoint);
  5. return transformedPoint;
  6. }

代码示例来源:origin: JChemPaint/jchempaint

  1. public Point2d toModelCoordinates(double screenX, double screenY) {
  2. try {
  3. double[] dest = new double[2];
  4. double[] src = new double[] { screenX, screenY };
  5. transform.inverseTransform(src, 0, dest, 0, 1);
  6. return new Point2d(dest[0], dest[1]);
  7. } catch (NoninvertibleTransformException n) {
  8. return new Point2d(0,0);
  9. }
  10. }

相关文章