RotateTest.java


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

import java.awt.*;
import java.awt.event.*;
import static java.lang.Math.*;

public class RotateTest extends Canvas
{

  private Point center = new Point(100, 100);
  private Dimension radius = new Dimension(50, 50);
  private Point click = new Point(0, 0);

  public RotateTest()
  {
    MouseAdapter adapter = new MouseAdapter()
    {

      public void mouseClicked(MouseEvent e)
      {
        click = e.getPoint();
        repaint();
      }
    };
    addMouseListener(adapter);
  }

  @Override
  public void paint(Graphics g)
  {
    drawCircle(g);
    int deltaX = click.x - center.x;
    int deltaY = click.y - center.y;
    double angle = 90+toDegrees(atan2(deltaY, deltaX));
    drawNeedle(g,angle);
  }

  private void drawCircle(Graphics g)
  {
    g.drawArc(center.x - radius.width, center.y - radius.height,
      2 * radius.width, 2 * radius.height, 0, 360);
  }

  private void drawNeedle(Graphics g,double angle)
  {
    double needleAngle=angle-90;
    Point end = new Point();
    end.x = center.x + (int) (radius.width * cos(toRadians(needleAngle)));
    end.y = center.y + (int) (radius.height * sin(toRadians(needleAngle)));
    g.drawLine(center.x, center.y, end.x, end.y);
  }

  public static void main(String[] args)
  {

    System.out.println("Main");
    Frame frame = new Frame();
    frame.setBounds(100, 100, 410, 330);
    frame.setLayout(new BorderLayout());
    RotateTest sample = new RotateTest();
    frame.add(sample, BorderLayout.CENTER);
    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