| | |
How to draw a graph in Java applet
Thread Solved |
•
•
•
•
Thanks for your replies , i really wasn't expecting so many replies for my simple question.Because of your explanation in detail i understood it properly.Mathematically Alex is 100% right , because it really gives me a gradient of zero which is literally a straight line. I have changed my code and it gives me a sine curve but , it sticks to the top of the window but i hope that can be figured out . Once again thanks for the help and thanks for supporting the idea that g.drawLine(i,i,i,i) represents a point .Hopefully i ill be posting the code when its all done
I personally prefer using GObjects, GCompounds, GLines that work on GCanvases.
The only method I have an issue with understanding is the move method in most GObject classes. I'm almost certain that it fires a thread that continuously offsets the object but i could be wrong.
•
•
Join Date: May 2008
Posts: 38
Reputation:
Solved Threads: 2
import java.awt.*;
import java.applet.*;
public class graphic extends Applet {
Button button1;
public void init() {
}
public void paint(Graphics g) {
int CYCLE=4;
int MAX = 1000;
int x1=0;
int x2=0;
g.setColor(Color.red);//color for axes
g.drawLine(0,150,700,150);//x-axis
g.drawLine(240,0,240,500);//y-axis
g.drawString("X-Axis", 430,140);//Label for x-axis
g.drawString("Y-Axis",200,270);//Label for y-axis
g.setColor(Color.blue);//color for the sin curve
for (int i=-130;i<=368;i++)
{
try
{
Thread.sleep(10); // 10 millisecond delay
}
catch(InterruptedException e)
{
e.printStackTrace();
}
x1 = (int)(100 * Math.sin(((i)*2*Math.PI*CYCLE)/(MAX)));
x2 = (int)(100 * Math.sin(((i+1)*2*Math.PI*CYCLE)/(MAX)));
g.drawLine(i+121,x1+138,(i+1)+121,x2+138);
}
g.setFont(new Font("Times New Roman",Font.BOLD,15));
g.drawString("IT WORKS ; )",100,50); }
}
//Here is the code
import java.applet.*;
public class graphic extends Applet {
Button button1;
public void init() {
}
public void paint(Graphics g) {
int CYCLE=4;
int MAX = 1000;
int x1=0;
int x2=0;
g.setColor(Color.red);//color for axes
g.drawLine(0,150,700,150);//x-axis
g.drawLine(240,0,240,500);//y-axis
g.drawString("X-Axis", 430,140);//Label for x-axis
g.drawString("Y-Axis",200,270);//Label for y-axis
g.setColor(Color.blue);//color for the sin curve
for (int i=-130;i<=368;i++)
{
try
{
Thread.sleep(10); // 10 millisecond delay
}
catch(InterruptedException e)
{
e.printStackTrace();
}
x1 = (int)(100 * Math.sin(((i)*2*Math.PI*CYCLE)/(MAX)));
x2 = (int)(100 * Math.sin(((i+1)*2*Math.PI*CYCLE)/(MAX)));
g.drawLine(i+121,x1+138,(i+1)+121,x2+138);
}
g.setFont(new Font("Times New Roman",Font.BOLD,15));
g.drawString("IT WORKS ; )",100,50); }
}
//Here is the code
Last edited by Software guy; Jun 4th, 2008 at 8:52 pm.
•
•
•
•
import java.awt.*;
import java.applet.*;
public class graphic extends Applet {
Button button1;
public void init() {
}
public void paint(Graphics g) {
int CYCLE=4;
int MAX = 1000;
int x1=0;
int x2=0;
g.setColor(Color.red);//color for axes
g.drawLine(0,150,700,150);//x-axis
g.drawLine(240,0,240,500);//y-axis
g.drawString("X-Axis", 430,140);//Label for x-axis
g.drawString("Y-Axis",200,270);//Label for y-axis
g.setColor(Color.blue);//color for the sin curve
for (int i=-130;i<=368;i++)
{
try
{
Thread.sleep(10); // 10 millisecond delay
}
catch(InterruptedException e)
{
e.printStackTrace();
}
x1 = (int)(100 * Math.sin(((i)*2*Math.PI*CYCLE)/(MAX)));
x2 = (int)(100 * Math.sin(((i+1)*2*Math.PI*CYCLE)/(MAX)));
g.drawLine(i+121,x1+138,(i+1)+121,x2+138);
}
g.setFont(new Font("Times New Roman",Font.BOLD,15));
g.drawString("IT WORKS ; )",100,50); }
}
//Here is the code
java Syntax (Toggle Plain Text)
import java.awt.*; import java.applet.*; public class graphic extends Applet { Button button1; public void init() { } public void paint(Graphics g) { int CYCLE=4; int MAX = 1000; int WEIGHT = 100; int x1=0; int x2=0; g.setColor(Color.red);//color for axes g.drawLine(0,150,700,150);//x-axis g.drawLine(240,0,240,500);//y-axis g.drawString("X-Axis", 430,140);//Label for x-axis g.drawString("Y-Axis",200,270);//Label for y-axis g.setColor(Color.blue);//color for the sin curve for (int i=-130;i<=368;i++) { try { Thread.sleep(10); // 10 millisecond delay } catch(InterruptedException e) { e.printStackTrace(); } x1 = (int)(WEIGHT * Math.sin(((i)*2*Math.PI*CYCLE)/(MAX))); x2 = (int)(WEIGHT * Math.sin(((i+1)*2*Math.PI*CYCLE)/(MAX))); g.drawLine(i+121,x1+138,(i+1)+121,x2+138); } g.setFont(new Font("Times New Roman",Font.BOLD,15)); g.drawString("IT WORKS ; )",100,50); } } //Here is the code
Keep in mind that the MAX is really the maximum difference between the min-x and max-x values.
For example, if you can go from -100 to 100 in your graph, MAX should be the difference of the two, resulting in MAX = 200
Edit: Added an int named WEIGHT that controls the peak and valley of your sin graph. The greater the WEIGHT the deeper and steeper your waves, the lower the WEIGHT the more subtle your graph will be.
Last edited by Alex Edwards; Jun 4th, 2008 at 11:54 pm.
•
•
Join Date: Aug 2006
Posts: 137
Reputation:
Solved Threads: 11
Alex said: Well that's not exactly true; the gradient (i.e. rate of change) of a Sin curve depends on the input. Though I did misread the part about the circle, my bad
Good work Alex
Though because of the nature of a Sin graph, one did not have to consider the changed between graphics and the Cartesian plane. On the screen y increases as we move down, however, on the Cartesian plane, y increase as we move up. Something to consider if ever you needed to draw, say a straight line.
So perhaps mark this post as Solved
•
•
•
•
There is no rate of change in his function as i increments. Basically the graph isn't dependent on i, so he ends up with a constant graph, or a straight line.
Good work Alex
So perhaps mark this post as Solved
![]() |
Similar Threads
- Tic Tac Toe help (Java)
- Applet - Graphing Quadratic Function Help (Java)
- Graph??? Help For My Project-java Applet (Java)
- Create stats from a text file (Java)
Other Threads in the Java Forum
- Previous Thread: Need help with the java code!
- Next Thread: breaking a string block into list form
| Thread Tools | Search this Thread |
account android api applet application array arrays automation bidirectional binary birt bluetooth class classes client code columns component constructor database designadrawingapplicationusingjavajslider draw eclipse error errors exception expand fractal game givemetehcodez graphics gui guidancer homework html ide image inetaddress inheritance integer intellij j2me java javamicroeditionuseofmotionsensor javaprojects jlabel jme jni jpanel jtextfield jtree julia linux list loop map method methods midlethttpconnection mobile mobiledevelopmentcreatejar monitoring myaggfun netbeans newbie nullpointerexception open-source oracle plazmic print problem program project property recursion ria scanner search server set sharepoint smart sms smsspam sort sourcelabs splash sql sqlite static string subclass support swing testautomation threads tree unlimited webservices windows






