Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.image.BufferedImage;
- public class Graph extends JPanel {
- public static void main(String[] args) {
- JFrame frame = new JFrame();
- Graph graph = new Graph(800, 600);
- graph.setPreferredSize(new Dimension(800, 600));
- frame.add(graph);
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.pack();
- frame.setVisible(true);
- }
- public static Func func = power(2);
- public Graph(int width, int height) {
- setPreferredSize(new Dimension(width, height));
- Func easeInCubic = power(3);
- Func easeOutCubic = easeInCubic.flipXY();
- Func easeInOutCubic = easeInCubic.inOut();
- Func easeInCirc = circ;
- Func easeOutCirc = easeInCirc.flipXY();
- Func easeInOutCirc = easeInCirc.inOut();
- Func easeOutSine = sine;
- Func easeInSine = easeOutSine.flipXY();
- Func easeInOutSine = easeInSine.inOut();
- func = easeInOutSine;
- }
- public static Func power(final double e) {
- return new Func() {
- public double apply(double x) {
- return Math.pow(x, e);
- }
- };
- }
- public static Func circ = new Func() {
- public double apply(double x) {
- return 1-Math.sqrt(1-x*x);
- }
- };
- public static Func sine = new Func() {
- public double apply(double x) {
- return Math.sin(x*Math.PI/2);
- }
- };
- public void setFunc(Func func) {
- this.func = func;
- }
- @Override
- public void paint(Graphics _g) {
- Graphics2D g = (Graphics2D)_g;
- g.setColor(Color.WHITE);
- g.fillRect(0, 0, getWidth(), getHeight());
- g.setColor(Color.BLACK);
- int lastX = 0, lastY = 0;
- for(int ix = 0; ix < getWidth(); ix++) {
- double x = ((double)ix)/getWidth();
- double y = func.apply(x);
- int iy = getHeight() - (int)(y*getHeight());
- g.drawLine(lastX, lastY, ix, iy);
- lastX = ix; lastY = iy;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement