Sophie

Sophie

distrib > Mageia > 7 > i586 > by-pkgid > d13d90560af1f7aa43489cfadb848cdb > files > 10

curvesapi-1.04-2.mga7.noarch.rpm

Useful Information
------------------

The copyfiles.bat file is not required.  It is used to copy only
the necessary files from the com.graphbuilder package hierarchy
that are required for the Curve API.

In the src directory, there is a makejar.bat file.  This file will
compile the nested Java files and create a Jar file called Capi.jar.
Compilation requires Java 1.2 or higher.  After the Jar file is
created, add it to the classpath.  Note: CAPI comes with MESP (Math
Expression String Parser).

The following is a sample program:

import com.graphbuilder.curve.*;

public class CurveTest {

	public static void main(String[] args) {
		ControlPath cp = new ControlPath();
		cp.addPoint(createPoint(0,0));
		cp.addPoint(createPoint(10,10));
		cp.addPoint(createPoint(20, 10));
		cp.addPoint(createPoint(30,0));

		cp.addCurve(new BezierCurve(cp, new GroupIterator("0:n-1", cp.numPoints())));

		int dimension = 2;
		MultiPath mp = new MultiPath(dimension);
		mp.setFlatness(1.0); // default flatness is 1.0

		for (int i = 0; i < cp.numCurves(); i++)
			cp.getCurve(i).appendTo(mp);

		for (int i = 0; i < mp.getNumPoints(); i++) {
			double[] p = mp.get(i);
			System.out.println(p[0] + ", " + p[1]);
		}
	}

	private static Point createPoint(double x, double y) {
		final double[] arr = new double[] { x, y };
		return new Point() {
			public double[] getLocation() {
				return arr;
			}

			public void setLocation(double[] loc) {
				arr[0] = loc[0];
				arr[1] = loc[1];
			}
		};
	}
}

The demo directory contains a GUI to the API.  To run it first compile the
files and then run java CurveDemo.  The demo also requires Java 1.2 or higher.