Java에서 회전 행렬을 사용하여 원 그리기

2515 단어 회전 행렬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;

class Test2 extends JPanel{

    private static final int CENTERVALUE = 300; 


  public static void main(String[] args){
            JFrame frame = new JFrame();

            Test1 app = new Test1();
            frame.getContentPane().add(app);

            frame.setBackground(Color.BLACK);   // windowの背景色設定
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setResizable(false);
            frame.setBounds(0, 0, 600, 600);
            frame.setTitle("Test");
            frame.setVisible(true);
            Insets insets = frame.getInsets();  // 設定すべき値を求めるためのインスタンス化
            frame.setSize(600 + insets.left + insets.right,
                          600 + insets.top + insets.bottom); // 画面サイズ設定
          }

          public void paintComponent(Graphics g){
            Graphics2D g2 = (Graphics2D)g;
            g2.setColor(Color.blue);

            g2.draw(new Line2D.Double(300,   0, 300, 600));
            g2.draw(new Line2D.Double(  0, 300, 600, 300));

            g2.setColor(Color.green);
            drawTest1(g2);
          }

          public void drawTest1(Graphics2D g2){
              double x, y, xx, yy, r = 200, cx = 300, cy = 300;
              double[][] MathArray = new double[12][2];

              for(int i = 0; i < 360; i += 30){
                  /*  */
//                x = r * Math.sin(Math.toRadians(i)) + cx;
//                y = r * Math.cos(Math.toRadians(i)) + cy;
                  x = r * Math.cos(Radian(i));
                  y = r * Math.sin(Radian(i));
                  System.out.println(x - cx);
                  System.out.println(y - cy);
                  g2.draw(new Line2D.Double(x + cx, cy - y, cx + x, cy - y));
              }
          }
          public double Radian(double angle){
              angle = angle / 180 * 3.141592653589793;//Math.PI;
              return angle;
          }
}

개발 환경Mac Version 10.10.5, Eclipse MarsEclipse import을 사용하여 수행하십시오.
터미널에서 실행할 때
javac Test2.java
java Test2
나는 라디안 변환을 해야 한다는 생각이 들지 않아 고전했다...

좋은 웹페이지 즐겨찾기