123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /*
- Copyright (c) Xerox Corporation 1998-2002. All rights reserved.
-
- Use and copying of this software and preparation of derivative works based
- upon this software are permitted. Any distribution of this software or
- derivative works must comply with all applicable United States export control
- laws.
-
- This software is made available AS IS, and Xerox Corporation makes no warranty
- about the software, its performance or its conformity to any specification.
- */
-
- package tracing;
-
- /**
- * TwoDShape is an abstract class that defines generic functionality
- * for 2D shapes.
- */
- public abstract class TwoDShape {
- /**
- * Coordinates of the center of the shape.
- */
- protected double x, y;
-
- protected TwoDShape(double x, double y) {
- this.x = x; this.y = y;
- }
-
- /**
- * Returns the x coordinate of the shape.
- */
- public double getX() { return x; }
-
- /**
- * Returns the y coordinate of the shape.
- */
- public double getY() { return y; }
-
- /**
- * Returns the distance between this shape and the shape given as
- * parameter.
- */
- public double distance(TwoDShape s) {
- double dx = Math.abs(s.getX() - x);
- double dy = Math.abs(s.getY() - y);
- return Math.sqrt(dx*dx + dy*dy);
- }
-
- /**
- * Returns the perimeter of this shape. Must be defined in
- * subclasses.
- */
- public abstract double perimeter();
-
- /**
- * Returns the area of this shape. Must be defined in
- * subclasses.
- */
- public abstract double area();
-
- /**
- * Returns a string representation of 2D shapes -- simply its
- * coordinates.
- */
- public String toString() {
- return (" @ (" + String.valueOf(x) + ", " + String.valueOf(y) + ") ");
- }
- }
|