Java Reference
In-Depth Information
***10.12
(
Geometry: The
Triangle2D
class
) Define the
Triangle2D
class that contains:
Three points named
p1
,
p2
, and
p3
of the type
MyPoint
with
get
and
set
methods.
MyPoint
is defined in Exercise 10.4.
■
A no-arg constructor that creates a default triangle with the points (
0
,
0
),
(
1
,
1
), and (
2
,
5
).
■
A constructor that creates a triangle with the specified points.
■
A method
getArea()
that returns the area of the triangle.
■
A method
getPerimeter()
that returns the perimeter of the triangle.
■
A method
contains(MyPoint p)
that returns
true
if the specified point
p
is inside this triangle (see Figure 10.16a).
■
A method
contains(Triangle2D t)
that returns
true
if the specified tri-
angle is inside this triangle (see Figure 10.16b).
■
A method
overlaps(Triangle2D t)
that returns
true
if the specified tri-
angle overlaps with this triangle (see Figure 10.16c).
■
p
(a)
(b)
(c)
F
IGURE
10.16
(a) A point is inside the triangle. (b) A triangle is inside another triangle.
(c) A triangle overlaps another triangle.
Draw the UML diagram for the class and then implement the class. Write a test pro-
gram that creates a
Triangle2D
objects
t1
using the constructor
new Trian-
gle2D(new MyPoint(2.5, 2), new MyPoint(4.2, 3), new MyPoint(5,
3.5))
, displays its area and perimeter, and displays the result of
t1.contains(3,
3)
,
r1.contains(new Triangle2D(new MyPoint(2.9, 2), new
MyPoint(4, 1), MyPoint(1, 3.4)))
, and
t1.overlaps(new Trian-
gle2D(new MyPoint(2, 5.5), new MyPoint(4, -3), MyPoint(2,
6.5)))
.
(
Hint
: For the formula to compute the area of a triangle, see Programming Exer-
cise 2.15. Use the
java.awt.geo.Line2D
class in the Java API to implement
the
contains
and
overlaps
methods. The
Line2D
class contains the methods
for checking whether two line segments intersect and whether a line contains a
point, and so on. Please see the Java API for more information on
Line2D
. To
detect whether a point is inside a triangle, draw three dashed lines, as shown in
Figure 10.17. If the point is inside a triangle, each dashed line should intersect a
side only once. If a dashed line intersects a side twice, then the point must be out-
side the triangle.)
p
p
(a)
(b)
F
IGURE
10.17
(a) A point is inside the triangle. (b) A point is outside the triangle.