javaで回転行列を使用し、
指定した角度分回転させるようにしました。
コードはこちらになります。
ラインを使用し、見やすいようにしていますが、
座標だけを描画する場合は
((Graphics2D) g).
draw(new Line2D.Double(ox,oy,ox + x2, oy + y2));
の部分を
((Graphics2D) g).
draw(new Line2D.Double(ox + x2, oy + y2,ox + x2, oy + y2));
に変更してください。
turn.java
import javax.swing.*;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.geom.Line2D;
import java.awt.Color;
import java.awt.Component;
public class turn extends JPanel{
int r = 100;
int ox = 200,oy = 200;
double x2,y2;
public static void main(String[] args){
JFrame frame = new JFrame();
turn app = new turn();
frame.getContentPane().add(app);
frame.setDefaultCloseOperation
(JFrame.EXIT_ON_CLOSE);
frame.setBounds(10, 10, 400, 400);
frame.setTitle("回転行列使用");
frame.setVisible(true);
}
public void paintComponent(Graphics g){
g.setColor(Color.blue);
g.drawLine(200,0 , 200, 400);
//中央ラインy
g.drawLine(0,200 , 400, 200);
//中央ラインx
turn(g,100);
}
public void turn(Graphics g ,int s){
for(int i = 0;i <= 12; i ++){//12分割
g.setColor(Color.red);//色を赤に
double k = Math.toRadians(30 * i);
//radianに変換
x2 = r * Math.cos(k);//x座標
y2 = r * Math.sin(k);//y座標
/*線の描画、上の座標位置まで
中央から回転させた線を描画する*/
((Graphics2D) g).
draw(new Line2D.Double(ox,oy,ox + x2, oy + y2));
}
}
}
開発環境
Mac OSX version 10.10.5
実行方法
Eclipseでインポートさせて実行してください。