
Chapter: 1. Source code download,
2. Test results, 3. Test item and method,
4. Test code
1. Source code download
=>
NormalLines.zip,
ShortestNormalLines.zip
2. Test results
return=>page top

Figure1 Normal lines from a point to curves(NormalLines)
The normal Lines to a curve from a point are generally multiple,
so we distinguish the lines by their colors such as red, magenta, green
and so on. 

Figure2 Shotest normal lines from a point to curves(ShortestNormalLines)
The calculation of the shortest noramal line to a curve from a point is
equal to that of the closest point on the curve from the point. 
: Similar test =>
DrawTop test command
3. Test item and method
return=>page top
The methods to calculate the normal lines from a given point to a curve
are Curve2DUtil.getNormalLines and Curve2DUtil.getShortestNormalLine.
These methods are used for shape selection operation with clicking the mouse, so the processing speed is important for realtime
operation. Of course, the reliability is also important.
public static CurvePT[] getNormalLines(Point2D point, Curve2D curve)
Parameters:
point  The given point.
curve  The Curve2D object of the (parametric) curve.
Returns:
The array of the CurvePT objects representing the points on the curve. If the normal lines to the
curve are found, the getNormalLines method returns the array of the points (stored
in the CurvePT objects) which are the endpoints of the lines and lying on the curve,
otherwise retunets the array of 0length
4. Test code
return=>page top
4.1 Classes Overview
4.1.1 NormalLines
Class

Description

NormalLines

public class NormalLines extends JFrame
Creates and assembles the objects of the Jframe, JScrollPane, JViewport
and the Panel.

NormalLinesPanel 
public class NormalLinesPanel extends JPanel
Draws curves and normal lines on this panel.

TestCase 
public class TestCase
=> TestCase of the RegionHitTest.

TestCurve 
public class TestCurve
=> TestCurve of the RegionHitTest.

Parametric Curves 
Segment2D,
Curve2D,
Rectangle2DE,
RoundRectangle2DE,
Ellipse2DE,
Line2DE,
Polyline2DE,
CubicCurve2DE, GeneralCurve2DE, FergusonCurve2D 
Geometric Library 
Curve2DUtil.getNormalLines,
Curve2DUtil.getShortestNormalLine,
CurvePT,
Matrix,
Matrix2D

4.1.2 ShortestNormalLines
4.2 Specifications
return=>page top
4.2.1 public class NormalLinesPanel extends JPanel
Method

Description

createTestCase 
public void createTestCase()
Creates TastCase objects.

paint 
public void paint(Graphics g)
Draws the curves and the normal lines on this object shown as Figure1.
The calculation of the normal lines from a given point to a curves is performed
by Curve2DUtil.getNormalLines method.

4.2.2 public class ShortestNormalLinesPanel extends JPanel
Method

Description

createTestCase 
public void createTestCase()
Creates TastCase objects.

paint 
public void paint(Graphics g)
Draws the curves and the normal lines on this object shown as Figure2.
The calculation of the shortest normal lines from a given point to a curves is performed by the
Curve2DUtil.getShortestNormalLine method.

