[java]代码库
import java.awt.*;
import javax.swing.*;
public class WuJiaoXing extends JPanel {
	public WuJiaoXing() {
		this.setSize(800, 800);
	}
	public void paint(Graphics g) {
		wujiaoxing(g, 200, 200, 100, "draw");
		wujiaoxing(g, 400, 400, 100, "fill");
	}
	public void wujiaoxing(Graphics g, int x0, int y0, int r, String f) {
		double ch = 72 * Math.PI / 180;// 圆心角的弧度数
		int x1 = x0, x2 = (int) (x0 - Math.sin(ch) * r), x3 = (int) (x0 + Math
				.sin(ch) * r), x4 = (int) (x0 - Math.sin(ch / 2) * r), x5 = (int) (x0 + Math
				.sin(ch / 2) * r);
		int y1 = y0 - r, y2 = (int) (y0 - Math.cos(ch) * r), y3 = y2, y4 = (int) (y0 + Math
				.cos(ch / 2) * r), y5 = y4;
		int bx = (int) (x0 + Math.cos(ch) * Math.tan(ch / 2) * r);
		int by = y2;
		Polygon a = new Polygon();
		Polygon b = new Polygon();
		a.addPoint(x2, y2);
		a.addPoint(x5, y5);
		a.addPoint(bx, by);
		b.addPoint(x1, y1);
		b.addPoint(bx, by);
		b.addPoint(x3, y3);
		b.addPoint(x4, y4);
		if (f.equals("draw")) {
			g.drawPolygon(a);
			g.drawPolygon(b);
		}
		if (f.equals("fill")) {
			g.fillPolygon(a);
			g.fillPolygon(b);
		}
	}
	public static void main(String[] args) {
		new g();
	}
}
class g extends JFrame {
	WuJiaoXing a = new WuJiaoXing();
	public g() {
		this.setSize(800, 800);
		setLocation(100, 100);
		this.add(a);
		this.setVisible(true);
	}
}
[代码运行效果截图]
中级程序员
by: 中国人在美国 发表于:2013-07-31 05:10:10 顶(0) | 踩(0) 回复
基本功,顶一个
回复评论