1 package de.lathanda.eos.base.math;
3 import de.lathanda.eos.base.Picture;
5 import java.text.MessageFormat;
108 private final double dX;
112 private final double dY;
141 dX = Math.cos(angle);
142 dY = Math.sin(angle);
174 return new Vector(dX * k, dY * k);
183 return new Vector(-dX, -dY);
192 return Math.sqrt(dX * dX + dY * dY);
200 return dX * dX + dY * dY;
235 return new Vector(newdx, dY);
238 return new Vector(dX, newdy);
241 return new Point(dX,dY);
250 return new Vector(dX + v.dX, dY + v.dY);
260 return new Vector(dX - v.dX, dY - v.dY);
264 return new Vector(this.dX - dx, this.dY - dy);
274 return new Vector(dX + x, dY + y);
288 return 0.5 * Math.PI;
293 double angle = Math.atan(dY / dX);
315 return dY / (dX + dY);
317 return 3 + dX / (dX - dY);
321 return 1 + dX / (dX - dY);
323 return 2 + dY / (dX + dY);
344 return new Vector(length * Math.cos(angle), length * Math.sin(angle));
347 return new Vector(-dX,dY);
350 return new Vector(dX,-dY);
360 return dX * b.dX + dY * b.dY;
371 return dX * x + dY * y;
384 return new Vector(dX / n, dY / n);
397 return new Vector(-dY, dX);
410 double length = base.getLength();
426 double length = base.getLength();
456 return dX * b.dY - dY * b.dX;
482 return dX == 0 && dY == 0;
492 return MessageFormat.format(
"({0,number,#.00}|{1,number,#.00})",
493 new Object[]{dX, dY});
505 Vector b = base.normalize();
518 if (actL + l <= 0.0 || actL == 0) {
572 double length = Math.min(v.
getLength(), arrowLength);
578 double[] x =
new double[7];
579 double[] y =
new double[7];
582 x[0] = point.
getdx();
583 y[0] = point.
getdy();
584 point = point.
add(headLength).
add(headBreadth);
585 x[1] = point.
getdx();
586 y[1] = point.
getdy();
588 x[6] = point.
getdx();
589 y[6] = point.
getdy();
590 point = point.
add(headBreadth).
add(lineBreadth);
591 x[2] = point.
getdx();
592 y[2] = point.
getdy();
594 x[5] = point.
getdx();
595 y[5] = point.
getdy();
597 point = point.
add(lineBreadth);
598 x[3] = point.
getdx();
599 y[3] = point.
getdy();
601 x[4] = point.
getdx();
602 y[4] = point.
getdy();
abstract void drawPolygon(double[] x, double[] y)
void move(double dX, double dY)
Vector multiply(double k)
Vector(double dX, double dY)
Vector restrict(double min, double max)
double getAngleOrdernumber()
double dotProduct(double x, double y)
Vector substract(double dx, double dy)
Vector add(double x, double y)
double crossproduct(Vector b)
Vector rotate(double dAngle)
double getPerpendicularLength(Vector base)
double dotProduct(Vector b)
double getParallelogramArea(Vector a)
Vector substract(Vector v)
Vector getPerpendicular(Vector base)
Vector addLength(double l)
void render(Picture g, Point p, double scale, double arrowLength)
Vector getProjection(Vector base)
double getProjectionLength(Vector base)
Vector setdx(double newdx)
Vector setLength(double l)
Vector rotateRightAngleCounterClockwise()
Vector setdy(double newdy)