/* * Copyright 2006, United States Government as represented by the Administrator * for the National Aeronautics and Space Administration. No copyright is * claimed in the United States under Title 17, U.S. Code. All Other Rights * Reserved. */ package gov.nasa.ial.mde.solver.numeric; import gov.nasa.ial.mde.solver.classifier.PolarClassifier; /** * Trochoids are curves traced by points fixed to circles which roll about other * circles in the plane. Families of trochoids are distinguished by their * frequency <code>\omega</code> and amplitude <code>a</code>. A common example * is the heart-shaped cardioid given by <code>r = 1 - sin (theta)</code> where * both <code>\omega</code> and <code>a</code> are unity. The general equation * is given by <code>r = 1 - a*cos(\omega*(\theta-\phi)</code> where <code>a</code> * is the amplitude, <code>\omega</code> is the frequency, and <code>\phi</code> * determines the orientation of the figure. Values of a less than unity result * in a wiggly cy simple closed curve topologically equivalent to a circle; * values greater than 1 cause the curve to have loops that appear in pairs -- a * major loop and a corresponding smaller reflected loop. As a approaches * infinity, the minor reflections grow to approach the size of their major * counterparts, and the curve begins to look like a polar rose. * * @author Dr. Robert Shelton * @version 1.0 * @since 1.0 */ public class PolarTrochoidModel extends PolarModel { private int[][] trochoids = { { 0, 1, 4, 5 }, { 0, 1, 6, 7 }, { 0, 1, 8, 9 }, { 0, 1, 10, 11 } }; /** * Constructs a Polar Trochoid Model. * * @param p the Polar model builder. */ public PolarTrochoidModel(PolarModelBuilder p) { evaluate(p, trochoids); identity = PolarClassifier.POLAR_TROCHOID; name = "trochoid"; } // end PolarTrochoidModel } // end class PolarTrochoidModel