## Plotting parametric equations » Parametric.java

 1 ```import com.dkt.graphics.canvas.Canvas; ``` ```import com.dkt.graphics.canvas.CanvasFrame; ``` ```import com.dkt.graphics.extras.formula.ParametricCalculable; ``` ```import com.dkt.graphics.extras.formula.ParametricCalculableTimer; ``` ```import com.dkt.graphics.utils.Utils; ``` ```import java.awt.Color; ``` ```public class Parametric { ``` ``` public static void main(String[] args) { ``` ``` ////////////////////////////////////////////////////////// ``` ``` //The name that appears in the window ``` ``` String title = "Parametric example"; ``` ``` //We need to create a new frame ``` ``` CanvasFrame frame = new CanvasFrame(title); ``` ``` //And make it visible ``` ``` frame.setVisible(true); ``` ``` //Set a size in pixels (whichever you want) ``` ``` frame.setSize(550/*width*/, 550/*height*/); ``` ``` //Extract a reference to the canvas from the frame ``` ``` final Canvas canvas = frame.getCanvas(); ``` ``` //Tell the canvas to center the origin of coordinates, ``` ``` //which by default is located in the upper left corner ``` ``` canvas.setCenterOrigin(true); ``` ``` //Tell the canvas to invert the Y axis, this way we will ``` ``` //consider all positive Y increments from the origin of ``` ``` //coordinates to the title bar ``` ``` canvas.setInvertYAxis(true); ``` ``` ////////////////////////////////////////////////////////// ``` ``` canvas.setAutoRepaint(true); ``` ``` canvas.setRepaintDelay(35); ``` ``` final double a = 1; ``` ``` final double b = 60; ``` ``` final double c = 1; ``` ``` final double d = 1; ``` ``` final double e = 60; ``` ``` final double i = 1; ``` ``` final double j = 2; ``` ``` ParametricCalculable eq = new ParametricCalculable() { ``` ``` @Override ``` ``` public double x(double t) { ``` ``` return i * Math.cos(a * t) - Math.cos(b * t) * Math.sin(c * t); ``` ``` } ``` ``` @Override ``` ``` public double y(double t) { ``` ``` return j * Math.sin(d * t) - Math.sin(e * t); ``` ``` } ``` ``` }; ``` ``` eq.setScaleX(80); ``` ``` eq.setScaleY(80); ``` ``` eq.startPoint(0); ``` ``` eq.endPoint(2 * Math.PI); ``` ``` eq.step(0.000001); ``` ``` ParametricCalculableTimer timer = new ParametricCalculableTimer(eq); ``` ``` timer.setPaint(Utils.getColorWithAlpha(Color.BLUE, 64)); ``` ``` canvas.add(timer); ``` ``` timer.start(); ``` ``` } ``` ```} ```
(1-1/4)
Go to top