Click here to Skip to main content
15,850,298 members
Please Sign up or sign in to vote.
5.00/5 (1 vote)
See more:
I have built a GUI on which I want to show sine and cosine graphs.

The code for drawing the graph is :
while(x1 < getWidth()) {
                x2 = x1 + 1;
                y2 = (int)(340 - ((Math.sin(1.5*i*Math.PI/180) * 80)));
                g2.drawLine(x1, y1, x2, y2);
                x1 = x2;
                y1 = y2;
x1 = 300;   // x co-ordinate of interpolated origin
y1 = 340;   // y co-ordinate of interpolated origin

while(x1 > 0) {
                x2 = x1 - 1;
                i = -1;
                y2 = (int)(340 - ((Math.sin(1.5*i*Math.PI/180) * 80)));
                g2.drawLine(x1, y1, x2, y2);                
                x1 = x2;
                y1 = y2;

1.5(degrees) is the scale on my x-axis(relative to the GUI co-ordinates). and 1/80 i.e, 0.0125 is the scale on y-axis(relative to the GUI co-ordinates). The code for first part (positive angles) is working correctly. But all I get is a straight line for the second part(negative angles). Can you please point out where am I getting wrong in my code for second part.
Thank you.
Updated 31-Aug-12 2:53am

1 solution

Just adding phases solved my problem, it has been a long time since I used trigonometry or the"ALL SILVER TEA CUPS" idiom. For sine wave I have added a phase of PI/2 and for cosine wave I have added a phase of (1.5)*PI.
Share this answer

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900