Tutorials

Create Sine Wave

Here you will learn how to create Sine Wave.

Here you will learn how to create Sine Wave.

Create Sine Wave

In this section, you will learn how to create a Sine Wave using Java Swing. We have used Graphics class to draw the Sine Wave. To set the number of cycles, we have created the following method:

 public void setCycles(int newCycles) { cycles = newCycles; points = SCALEFACTOR * cycles * 2; sines = new double[points]; for (int i = 0; i < points; i++) { double radians = (Math.PI / SCALEFACTOR) * i; sines[i] = Math.sin(radians); } repaint(); }

Here is the code of SineWave.java:

 import java.awt.*; import javax.swing.*; import javax.swing.event.*; class Diagram extends JPanel {  static final int SCALEFACTOR = 200;  int cycles;  int points;  double[] sines;  int[] pts;  Diagram() {     }   public  void setCycles(int newCycles) {   cycles = newCycles;   points = SCALEFACTOR * cycles * 2;   sines = new double[points];   for (int i = 0; i < points; i++) {   double radians = (Math.PI / SCALEFACTOR) * i;   sines[i] = Math.sin(radians);   }   repaint();   }   public void paintComponent(Graphics g) {   super.paintComponent(g);   int maxWidth = getWidth();   double hstep = (double) maxWidth / (double) points;   int maxHeight = getHeight();   pts = new int[points];   for (int i = 0; i < points; i++)   pts[i] = (int) (sines[i] * maxHeight / 2 * .95 + maxHeight / 2);   g.setColor(Color.BLUE);   for (int i = 1; i < points; i++) {   int x1 = (int) ((i - 1) * hstep);   int x2 = (int) (i * hstep);   int y1 = pts[i - 1];   int y2 = pts[i];   g.drawLine(x1, y1, x2, y2);   }   } } public class SineWave {  public static void main(String[] args) {  JFrame frame = new JFrame();   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   frame.setSize(500, 200);   Diagram sines = new Diagram();   sines.setCycles(5);   frame.getContentPane().add(sines);   frame.setVisible(true);   } }

Output will be displayed as: 