Java 2D의 화면 묘사

12591 단어 2DJavagraphics
Java 3D를 만들기 전에 나는 Java 2D로 화면 묘사를 해 보았다.
드로잉 내용
y=x의 선
r=100의 원
위 원의 타원 버전 3개.

코드 내용
Test.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 Test1 extends JPanel{

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

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

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

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

            g2.draw(new Line2D.Double(200,   0, 200, 400));
            g2.draw(new Line2D.Double(  0, 200, 400, 200));

            drawPoint(g2);
            drawCircle(g2);
            drawEllipse(g2);
          }

          public void drawPoint(Graphics2D g2){
              int x = 0, y = 400; 
              for(int i = 0; i < 400; i++){
                  g2.fillRect(x, y, 1, 1);
                  x += 1;
                  y -= 1;
              }
          }

          public void drawCircle(Graphics2D g2){
              double x, y, cx = 200, cy = 200, r = 100;
              for(int i = 0; i < 720; i++){
                  x = r * Math.sin(i) + cx;
                  y = r * Math.cos(i) + cy;
                  g2.draw(new Line2D.Double(x, y, x + 0.1, y + 0.1));
              }
          }

          public void drawEllipse(Graphics2D g2){
              double x, y, cx = 200, cy = 200, r = 100;
              for(int i = 0; i < 720; i++){
                  x = r * Math.sin(i) + cx;
                  y = (r * Math.cos(i)) / 2 + cy;
                  g2.draw(new Line2D.Double(x, y, x, y));
              }
          }
}

개발 환경Mac version 10.10.5실행 방법
Eclipse를 사용하여 가져오고 실행하십시오.
콘솔에서 실행할 경우
javac Test1.java
java Test1
네.
3D에 들어가기 전에 수학을 다시 배워라...

좋은 웹페이지 즐겨찾기