EOS 2  1.1.0
Einfache Objektbasierte Sprache
Ellipse.java
gehe zur Dokumentation dieser Datei
1 package de.lathanda.eos.geo;
2 
3 import de.lathanda.eos.base.Picture;
4 import de.lathanda.eos.base.layout.BalancePoint;
5 import de.lathanda.eos.base.layout.BoundingBox;
6 import de.lathanda.eos.base.layout.Transform;
7 import static java.lang.Math.*;
8 
14 public class Ellipse extends FilledFigure {
15  private double radiusX;
16  private double radiusY;
17  public Ellipse() {
18  super();
19  radiusX = 10;
20  radiusY = 10;
21 
22  }
23  @Override
24  protected void drawObject(Picture p) {
25  p.drawEllipse(radiusX, radiusY);
26  }
27  @Override
28  protected void scaleInternal(double factor) {
29  radiusX *= factor;
30  radiusY *= factor;
31  }
32  public void setCenter(double x, double y) {
33  moveTo(x,y);
34  }
35  public void setRadiusX(double radiusX) {
36  this.radiusX = radiusX;
38  }
39  public double getRadiusX() {
40  return radiusX;
41  }
42  public void setRadiusY(double radiusY) {
43  this.radiusY = radiusY;
45  }
46  public double getRadiusY() {
47  return radiusY;
48  }
49  public void setCenterX(double x) {
50  setX(x);
51  }
52  public double getCenterX() {
53  return getX();
54  }
55  public void setCenterY(double y) {
56  setY(y);
57  }
58  public double getCenterY() {
59  return getY();
60  }
61 
62  @Override
64  return new BalancePoint(radiusX*radiusY*Math.PI, getX(), getY());
65  }
66 
67  @Override
69  Transform t = base.transform(own);
70 
71  double rx = t.transform(radiusX);
72  double ry = t.transform(radiusY);
73  double phi = getRotationInternal() + t.getAngle();
74  double ux = rx * cos(phi);
75  double uy = rx * sin(phi);
76  double vx = ry * cos(phi+PI/2);
77  double vy = ry * sin(phi+PI/2);
78 
79  double w = sqrt(ux*ux + vx*vx);
80  double h = sqrt(uy*uy + vy*vy);
81 
82  return new BoundingBox(t.getdx() - w, t.getdx() + w, t.getdy() - h, t.getdy() + h);
83  }
84 }
void drawEllipse(Point p, double radiusX, double radiusY)
Definition: Picture.java:203
Geometrische Transformation.
Definition: Transform.java:13
Transform transform(Transform child)
Definition: Transform.java:83
void setCenterY(double y)
Definition: Ellipse.java:55
void drawObject(Picture p)
Definition: Ellipse.java:24
void setRadiusX(double radiusX)
Definition: Ellipse.java:35
void scaleInternal(double factor)
Definition: Ellipse.java:28
BalancePoint getBalancePoint()
Definition: Ellipse.java:63
BoundingBox calculateBoundingBox(Transform base, Transform own)
Definition: Ellipse.java:68
void setCenter(double x, double y)
Definition: Ellipse.java:32
void setCenterX(double x)
Definition: Ellipse.java:49
void setRadiusY(double radiusY)
Definition: Ellipse.java:42
void setX(double x)
Definition: Figure.java:142
void moveTo(double x, double y)
Definition: Figure.java:133
void setY(double y)
Definition: Figure.java:151
Impressum