20 package org.matsim.vis.vecmathutils;
22 import java.awt.geom.Point2D;
40 public static Tuple<Point2D.Double, Point2D.Double>
scaleVector(
final Point2D.Double start,
final Point2D.Double end,
54 public static Tuple<Point2D.Double, Point2D.Double>
scaleVectorStart(
final Point2D.Double start,
final Point2D.Double end,
58 return new Tuple<Point2D.Double, Point2D.Double>(scaledVector.getFirst(), end);
69 public static Tuple<Point2D.Double, Point2D.Double>
scaleVectorEnd(
final Point2D.Double start,
final Point2D.Double end,
73 return new Tuple<Point2D.Double, Point2D.Double>(start, scaledVector.getSecond());
78 final Point2D.Double start,
final Point2D.Double end,
81 Point2D.Double.Double delta =
new Point2D.Double.Double(end.x - start.x, end.y - start.y);
82 double length = Math.sqrt(Math.pow(delta.x, 2) + Math.pow(delta.y, 2));
83 Point2D.Double.Double deltaNorm =
new Point2D.Double.Double(delta.x / length, delta.y / length);
85 double scaledLength = length * scaleFactor;
86 double offset = (length - scaledLength) / 2;
87 Point2D.Double scaledEnd =
new Point2D.Double(start.x + ((length - offset) * deltaNorm.x), start.y
88 + ((length - offset) * deltaNorm.y));
89 Point2D.Double scaledStart =
new Point2D.Double(start.x
90 + (offset * deltaNorm.x), start.y
91 + (offset * deltaNorm.y));
92 Tuple<Point2D.Double, Point2D.Double> scaledVector =
new Tuple<Point2D.Double, Point2D.Double>(scaledStart, scaledEnd);
static Tuple< Point2D.Double, Point2D.Double > scaleVector(final Point2D.Double start, final Point2D.Double end, double scaleFactor)
static Tuple< Point2D.Double, Point2D.Double > scaleVectorStart(final Point2D.Double start, final Point2D.Double end, double scaleFactor)
static Tuple< Point2D.Double, Point2D.Double > scaleVectorEnd(final Point2D.Double start, final Point2D.Double end, double scaleFactor)
static Tuple< Point2D.Double, Point2D.Double > calculateScaledVector(final Point2D.Double start, final Point2D.Double end, double scaleFactor)