Proyecto

General

Perfil

Plotting parametric equations » Parametric.java

Federico Vera, 2018-07-08 04:58

 
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) Volver al inicio