FunctionCanvas.java


Dosyayı İndir
package com.godoro.samples.awt;

import java.awt.*;

public class FunctionCanvas extends Canvas
{

  private Point origin = new Point(300, 300);
  private int unit = 50;
  private int axis = 500;
  private int arrow = 5;

  public double function(double x)
  {
    return 2 * Math.cos(x) + 3 * Math.sin(x);
  }
  public void paint(Graphics g)
  {
    drawXAxis(g);
    drawYAxis(g);
    drawFunction(g);
  }

  private void drawXAxis(Graphics g)
  {
    int xMin = origin.x - axis / 2;
    int xMax = origin.x + axis / 2;
    g.drawLine(xMin, origin.y, xMax, origin.y);
    g.drawLine(xMin, origin.y, xMin + arrow, origin.y - arrow);
    g.drawLine(xMin, origin.y, xMin + arrow, origin.y + arrow);
    g.drawLine(xMax, origin.y, xMax - arrow, origin.y - arrow);
    g.drawLine(xMax, origin.y, xMax - arrow, origin.y + arrow);
  }

  private void drawYAxis(Graphics g)
  {
    int yMin = origin.y - axis / 2;
    int yMax = origin.y + axis / 2;
    g.drawLine(origin.x, yMin, origin.x, yMax);
    g.drawLine(origin.x, yMin, origin.x - arrow, yMin + arrow);
    g.drawLine(origin.x, yMin, origin.x + arrow, yMin + arrow);
    g.drawLine(origin.x, yMax, origin.x - arrow, yMax - arrow);
    g.drawLine(origin.x, yMax, origin.x + arrow, yMax - arrow);

  }

  private void drawFunction(Graphics g)
  {
    double dx = 0.01;
    double x1 = -3 * Math.PI / 2;
    double y1 = function(x1);
    for (double x2 = -3 * Math.PI / 2; x2 <= 3 * Math.PI / 2; x2 += dx) {
      double y2 = function(x2);
      int xScreen1 = (int) (origin.x + x1 * unit);
      int yScreen1 = (int) (origin.y - y1 * unit);
      int xScreen2 = (int) (origin.x + x2 * unit);
      int yScreen2 = (int) (origin.y - y2 * unit);
      g.drawLine(xScreen1, yScreen1, xScreen2, yScreen2);
      x1 = x2;
      y1 = y2;
    }
  }

  public static void main(String[] args)
  {
    Frame frame = new Frame();
    frame.setLayout(new BorderLayout());
    frame.add(BorderLayout.CENTER, new FunctionCanvas());
    frame.setBounds(0, 0, 600, 600);
    frame.setVisible(true);
  }
}
				
Dosyayı İndir

Bu Sayfayı Paylaş:




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir