计算机图形学简单画图代码
软件:NetBeans 图形效果:
代码:
package newpackage;
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
import java.awt.image.*;
import java.net.URL;
import java.io.*;
import javax.imageio.*;
import java.awt.event.*;
import java.util.Calendar;
import javax.swing.*;
public class Hello2D extends JApplet {
public static void main(String s[]) {
JFrame frame = new JFrame();
frame.setTitle("计算机图形学");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JApplet applet = new Hello2D();
applet.init();
frame.getContentPane().add(applet);
frame.pack();
frame.setVisible(true);
}
public void init() {
JPanel panel = new Hello2DPanel();
getContentPane().add(panel);
}
}
class Hello2DPanel extends JPanel implements ActionListener{
private BufferedImage image;
AffineTransform rotH = new AffineTransform();
AffineTransform rotM = new AffineTransform();
AffineTransform rotS = new AffineTransform();
// AffineTransform zuq=new AffineTransform ();
public Hello2DPanel() {
setPreferredSize(new Dimension(1400,1000));
setBackground(Color.white);
Timer timer=new Timer(500,this);
timer.start();
URL url=getClass().getClassLoader().getResource("images/zuqiu.jpg");
try{
image=ImageIO.read(url);
}catch(IOException ex)
{
ex.printStackTrace();
}
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2= (Graphics2D)g;
g2.translate(100,100);
g2.scale(0.5, 0.5);
for (int i = 0; i < 12; i++) {
g2.rotate(2*Math.PI/12);
g2.fill3DRect(-3, -180, 6, 30, true);
}
Shape hour = new Line2D.Double(0, 0, 0, -80);
hour = rotH.createTransformedShape(hour);
Shape minute = new Line2D.Double(0, 0, 0, -120);
minute = rotM.createTransformedShape(minute);
Shape second = new Line2D.Double(0, 0, 0, -120);
second = rotS.createTransformedShap