i have to do a program that takes to equations from the user and draw a graph for them and then get the intersection point and then find the optimal solution and my program draws the graph but it makes the intersection point in a wrong way and i don't know why. and i have attached my program in the thread. please help me
sahrourr 0 Newbie Poster
package ds;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class DrawGraph extends JFrame {
private JPanel DrawArea = new JPanel();
private JLabel Z = new JLabel();
private JLabel equalsign = new JLabel();
private JTextArea A = new JTextArea();
private JTextArea B = new JTextArea();
private JLabel x1 = new JLabel();
private JLabel sumsign = new JLabel();
private JLabel x2 = new JLabel();
private JLabel x3 = new JLabel();
private JLabel sumsign2 = new JLabel();
private JLabel x4 = new JLabel();
private JTextArea C = new JTextArea();
private JTextArea D = new JTextArea();
private JTextArea eq1 = new JTextArea();
private JTextArea eq2 = new JTextArea();
private JLabel x5 = new JLabel();
private JLabel sumsign3 = new JLabel();
private JLabel x6 = new JLabel();
private JTextArea E = new JTextArea();
private JTextArea F = new JTextArea();
private JLabel X1Optimal = new JLabel();
private JLabel X2Optimal = new JLabel();
private JLabel OptimalSol = new JLabel();
private JButton enter1 = new JButton();
private JButton enter2 = new JButton();
private JButton enter3 = new JButton();
private JLabel GreORless = new JLabel();
private JLabel GreORless1 = new JLabel();
public DrawGraph() {
try {
jbInit();
} catch (Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
this.getContentPane().setLayout( null );
this.setSize(new Dimension(483, 528));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(new Rectangle(340, 100, 483, 528));
DrawArea.setBounds(new Rectangle(35, 25, 400, 250));
DrawArea.setBackground(Color.white);
DrawArea.setBorder(BorderFactory.createLineBorder(Color.black, 5));
Z.setText("Z");
Z.setBounds(new Rectangle(25, 340, 35, 35));
equalsign.setText("=");
equalsign.setBounds(new Rectangle(40, 345, 20, 20));
A.setBounds(new Rectangle(55, 340, 30, 30));
B.setBounds(new Rectangle(120, 340, 30, 30));
x1.setText("X1");
x1.setBounds(new Rectangle(90, 340, 35, 35));
sumsign.setText("+");
sumsign.setBounds(new Rectangle(105, 340, 35, 35));
x2.setText("X2");
x2.setBounds(new Rectangle(155, 340, 35, 35));
x3.setText("X1");
x3.setBounds(new Rectangle(55, 385, 30, 30));
sumsign2.setText("+");
sumsign2.setBounds(new Rectangle(75, 385, 25, 35));
x4.setText("X2");
x4.setBounds(new Rectangle(130, 380, 35, 40));
C.setBounds(new Rectangle(20, 385, 30, 30));
D.setBounds(new Rectangle(90, 385, 30, 30));
eq1.setBounds(new Rectangle(175, 385, 30, 30));
eq2.setBounds(new Rectangle(200, 385, 30, 30));
x5.setText("X2");
x5.setBounds(new Rectangle(130, 380, 35, 40));
sumsign3.setText("+");
sumsign3.setBounds(new Rectangle(75, 385, 25, 35));
x5.setText("X1");
x5.setBounds(new Rectangle(55, 440, 30, 30));
sumsign3.setText("+");
sumsign3.setBounds(new Rectangle(70, 440, 30, 30));
x6.setText("X2");
x6.setBounds(new Rectangle(130, 440, 30, 30));
E.setBounds(new Rectangle(20, 440, 30, 30));
F.setBounds(new Rectangle(90, 440, 30, 30));
X1Optimal.setBounds(new Rectangle(340, 335, 85, 35));
X2Optimal.setBounds(new Rectangle(340, 390, 85, 30));
OptimalSol.setBounds(new Rectangle(340, 440, 95, 35));
enter1.setText("Enter");
enter1.setBounds(new Rectangle(245, 335, 75, 35));
enter2.setText("Enter");
enter2.setBounds(new Rectangle(245, 385, 75, 35));
enter2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
enter2_actionPerformed(e);
}
});
enter3.setText("Enter");
enter3.setBounds(new Rectangle(245, 440, 75, 35));
enter3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
enter3_actionPerformed(e);
}
});
GreORless.setText("<=");
GreORless.setBounds(new Rectangle(150, 385, 30, 30));
GreORless1.setText("<=");
GreORless1.setBounds(new Rectangle(150, 440, 30, 30));
eq2.setBounds(new Rectangle(175, 440, 30, 30));
this.getContentPane().add(GreORless1, null);
this.getContentPane().add(GreORless, null);
this.getContentPane().add(enter3, null);
this.getContentPane().add(enter2, null);
this.getContentPane().add(enter1, null);
this.getContentPane().add(OptimalSol, null);
this.getContentPane().add(X2Optimal, null);
this.getContentPane().add(X1Optimal, null);
this.getContentPane().add(eq2, null);
this.getContentPane().add(F, null);
this.getContentPane().add(E, null);
this.getContentPane().add(x6, null);
this.getContentPane().add(sumsign3, null);
this.getContentPane().add(x5, null);
this.getContentPane().add(eq1, null);
this.getContentPane().add(sumsign3, null);
this.getContentPane().add(x5, null);
this.getContentPane().add(eq2, null);
this.getContentPane().add(D, null);
this.getContentPane().add(C, null);
this.getContentPane().add(x4, null);
this.getContentPane().add(sumsign2, null);
this.getContentPane().add(x3, null);
this.getContentPane().add(x2, null);
this.getContentPane().add(sumsign, null);
this.getContentPane().add(x1, null);
this.getContentPane().add(B, null);
this.getContentPane().add(A, null);
this.getContentPane().add(equalsign, null);
this.getContentPane().add(Z, null);
this.getContentPane().add(DrawArea, null);
}
private void enter2_actionPerformed(ActionEvent e) {
String get1=eq1.getText();
int num1=Integer.parseInt(get1);
String get2=C.getText();
int num2=Integer.parseInt(get2);
int x1=(num1/num2)+250;
int y1=(0+300);
String get3=D.getText();
int num3=Integer.parseInt(get3);
int x2=(num1/num3)+100;
int y2=(0+5);
DrawArea.getGraphics().drawLine(x1,y1,y2,x2);
}
private void enter3_actionPerformed(ActionEvent e) {
String get1=eq2.getText();
int num1=Integer.parseInt(get1);
String get2=E.getText();
int num2=Integer.parseInt(get2);
int x1=(num1/num2)+150;
int y1=0+300;
String get3=F.getText();
int num3=Integer.parseInt(get3);
int x2=(num1/num3)+50;
int y2=0+5;
DrawArea.getGraphics().drawLine(x1,y1,y2,x2);
String s1=C.getText();
int cn1=Integer.parseInt(s1);
String s2=D.getText();
int dn2=Integer.parseInt(s2);
String s3=eq1.getText();
int eqn3=Integer.parseInt(s3);
String s4=E.getText();
int en4=Integer.parseInt(s4);
String s5=F.getText();
int fn5=Integer.parseInt(s5);
String s6=eq2.getText();
int eqn6=Integer.parseInt(s6);
int deq1=en4*cn1;
int deq2=en4*dn2;
int deq3=en4*eqn3;
int deq4=-cn1*en4;
int deq5=-cn1*fn5;
int deq6=-cn1*eqn6;
int rx2= deq2+ deq5;
int req=eqn3+eqn6;
int intersectionX2=req/rx2;
int DX2=intersectionX2*dn2;
int intersectionX1=(eqn3-DX2)/cn1;
X1Optimal.setText("("+intersectionX1+","+intersectionX2+")");
}
}
- 1 Contributor
- 0 Replies
- 58 Views
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.