Вы находитесь на странице: 1из 4

GRAFICADOR DE FUNCIONES

GRAFICADORA.java
package graficadora;
import javax.swing.*;
import java.awt.*;
public class Graficadora {
public static plano plano;
public static void main(String[] args) {
Ventana frame = new Ventana();
//accion click para cerrar la ventana
frame.setDefaultCloseOperation(Ventana.EXIT_ON_CLOSE);
//posicion de la ventana y tamao
frame.setBounds(500, 100, 600, 700);
frame.setLayout(new BorderLayout());
plano = new plano();
//agregar boton con el texto inicias
JButton start = new JButton("Iniciar");
start.addActionListener(frame);
start.setText("Iniciar");
frame.add( plano, BorderLayout.CENTER);
frame.add(start, BorderLayout.SOUTH);
/*
JButton go = new JButton("Pendiente");
start.addActionListener(frame);
start.setText("pendiente");
frame.add( plano, BorderLayout.CENTER);
frame.add(go, BorderLayout.SOUTH);
*/
frame.setVisible( true );
}
}

PLANO.java
package graficadora;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
public final class plano extends JPanel{
public plano() {
init();
}
public void init() {
this.setBorder(BorderFactory.createLineBorder(Color.black));
}
@Override
public void paintComponent( Graphics g ) {
super.paintComponent(g);
g.setColor(Color.blue);
//crear en el plano en el eje x
g.drawLine(0, this.getHeight()/2, this.getWidth(),
this.getHeight()/2);
//crear en el plano en el eje y
g.drawLine(this.getWidth()/2, 0,this.getWidth()/2 ,
this.getHeight());
}
public void paintSQRFunc(Graphics g, double x2mult,
double x1mult,double cons, double x1,double x2)
{
for(double i=x1;i<x2;i++)
{
//evaluamos en x para allar y
double y = ((double)Math.pow(i,2)*x2mult)+i*x1mult+cons;
double xp = i+1;
double yp = ((double)Math.pow(xp,2)*x2mult)+xp*x1mult+cons;
// color de la funcion
g.drawLine((int)coord_x(i), (int)coord_y(y), (int)coord_x(xp),
(int)coord_y(yp));
g.setColor(Color.red);
}
}
//simulacin del eje en las coordenadas 0,0
private double coord_x(double x)
{
double real_x = x+this.getWidth()/2;
return real_x;
}
private double coord_y(double y)

{
double real_y = -y+this.getHeight()/2;
return (real_y);
}
void paintLineFunc(Graphics graphics, int i, int i0, int i1, int i2) {
throw new UnsupportedOperationException("Not supported yet."); //To
change body of generated methods, choose Tools | Templates.
}
void paintLinearFunc(Graphics graphics, int i, int i0, int i1, int i2) {
throw new UnsupportedOperationException("Not supported yet."); //To
change body of generated methods, choose Tools | Templates.
}
}
VENTANA.java
package graficadora;
import
import
import
import

java.awt.event.ActionEvent;
javax.swing.*;
java.awt.event.ActionListener;
graficadora.Graficadora;

public class Ventana extends JFrame implements ActionListener{


@Override
public void actionPerformed(ActionEvent e) {
//excribir la ecuacion cuadratica
Graficadora.plano.paintSQRFunc(Graficadora.plano.getGraphics(),2,3,3,-200,200);
}
public void actionPersformed(ActionEvent e) {
//excribir la ecuacion cuadratica
Graficadora.plano.paintLinearFunc(Graficadora.plano.getGraphics(),3,5,-100,100);
}
}
}

ARBOL BINARIO
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
public class Fractal extends JFrame {
public Fractal() {
super("Fractal");
setBounds(100, 100, 800, 600);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
private void drawTree(Graphics g, int x1, int y1, double angle, int depth) {
if (depth == 0) return;
int x2 = x1 + (int) (Math.cos(Math.toRadians(angle)) * depth * 10.0);
int y2 = y1 + (int) (Math.sin(Math.toRadians(angle)) * depth * 10.0);
g.drawLine(x1, y1, x2, y2);
drawTree(g, x2, y2, angle - 45, depth - 1);
drawTree(g, x2, y2, angle + 45, depth - 1);
}
@Override
public void paint(Graphics g) {
g.setColor(Color.BLACK);
drawTree(g, 400, 500, -90, 9);
}
public static void main(String[] args) {
new Fractal().setVisible(true);
}
}

Вам также может понравиться