GeomVis  0.1
Набор классов Java для визуализации результатов работы геометрических алгоритмов
Circle.java
См. документацию.
1 package geom;
2 
3 import java.awt.Color;
4 
5 import geom.Point;
6 
11 public class Circle extends GObject
12 {
13 
14  public double r;
15  public Point c;
16 
17  public Circle(double x0, double y0, double r) {
18  this(new Point(x0, y0), r);
19  }
20 
21  public Circle(Point c, double r) {
22  this.c = c;
23  this.r = r;
24  }
25 
26  @Override
27  public void draw(GCoordSystem gcs)
28  {
29  Color prevColor = gcs.getCanvas().getColor();
30  view().chooseColor(Color.BLACK, Color.YELLOW, Color.GREEN, gcs);
31  double scale = gcs.getScale();
32  gcs.getCanvas().drawOval(gcs.canvasX(c.x) - (int) (r / scale),
33  gcs.canvasY(c.y) - (int) (r / scale), 2 * (int) (r / scale),
34  2 * (int) (r / scale));
35 
36  gcs.getCanvas().fillOval(gcs.canvasX(c.x) - 1, gcs.canvasY(c.y) - 1, 3,
37  3);
38 
39  gcs.getCanvas().setColor(prevColor);
40  }
41 
42  @Override
43  public boolean in(int canvasX, int canvasY, GCoordSystem gcs)
44  {
45  if (Algorithms.distance(
46  new Point(gcs.realX(canvasX), gcs.realY(canvasY)), this.c)
47  / gcs.getScale() < gcs.gEps
48  || Algorithms
49  .distance(
50  new Point(gcs.realX(canvasX), gcs
51  .realY(canvasY)), this)
52  / gcs.getScale() < gcs.gEps)
53  return true;
54  return false;
55  }
56 
57 }
Circle(double x0, double y0, double r)
Definition: Circle.java:17
double x
Definition: Point.java:13
Point c
Definition: Circle.java:15
void draw(GCoordSystem gcs)
Definition: Circle.java:27
double realX(int canvasX)
Точка. Определяется двумя числами - координами в декартовой системе координат.
Definition: Point.java:10
Circle(Point c, double r)
Definition: Circle.java:21
static double distance(double x1, double y1, double x2, double y2)
Вычисляет расстояние между двумя точками, заданных координатами
Definition: Algorithms.java:70
double r
Definition: Circle.java:14
Главный класс отображения. У пользователя нет необходимости его использовать напрямую.
int canvasX(double realX)
Абстрактный суперкласс для всех графических объектов
Definition: GObject.java:14
GView view()
Definition: GObject.java:19
Окружность. Определяется точкой центра и радиусом
Definition: Circle.java:11
boolean in(int canvasX, int canvasY, GCoordSystem gcs)
Definition: Circle.java:43
Основной класс - функции геометрических алгоритмов Используются команадами.
Definition: Algorithms.java:10