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에 들어가기 전에 수학을 다시 배워라...
Reference
이 문제에 관하여(Java 2D의 화면 묘사), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/inomasa/items/2ab4256734dacde9c6a6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)