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

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.

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.

No credit card required