O'Reilly logo

Killer Game Programming in Java by Andrew Davison

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Subclassing the Lathe Shape

Figure 17-2 shows that LatheShape3D can be subclassed. The aim is to override its xCoord() and zCoord() methods, which control the shape of the path made by the lathe curve when it's rotated. These methods appear in LatheShape3D as shown here:

    protected double xCoord(double radius, double angle)
    {  return radius * Math.cos(angle);  }

    protected double zCoord(double radius, double angle)
    {  return radius * Math.sin(angle);  }

radius is the x-value of the point being rotated around the y-axis, and angle is the angle of rotation currently being applied. xCoord() and zCoord() return the new x-and z-values after the rotation has been applied.

An Elliptical Shape

An ellipse resembles a circle stretched in one direction. Another (more formal) way of characterizing the ellipse is that its points all have the same sum of distances from two fixed points (called the foci).

The line that passes through the foci is called the major axis, and is the longest line through the ellipse. The minor axis is the line that passes through the center of the ellipse, perpendicular to the major axis. The semi-major axis is half the length of the major axis: it runs from the center of the ellipse to its edge. There's also a semi-minor axis(half of the minor axis). See Figure 17-19 for illustrations of all of these concepts.

Elements of an ellipse

Figure 17-19. Elements of an ellipse

Figure 17-20 shows an ellipse ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required