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) 回复
基本功,顶一个
回复评论