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