画圆的刻度代码
来源:互联网 发布:海澜之家 淘宝 编辑:程序博客网 时间:2024/04/29 12:02
- public void paintComponent(Graphics g) {
-
- super.paintComponent(g);
- Graphics2D g2 = (Graphics2D) g;
-
- double X = 200.00, Y = 200.00, R = 150, Len, x1, x2, y1, y2, Rad;
-
- g2.setPaint(Color.BLUE);
- Ellipse2D circle = new Ellipse2D.Double();
- circle.setFrameFromCenter(X, Y, X + R, Y + R);
- g2.draw(circle);
-
- g2.setPaint(Color.RED);
- for (int i = 1; i <= 60; i++) {
- Rad = Math.toRadians(6* i);
- if (i % 5 == 0) {
- Len = 15;
- } else {
- Len = 5;
- }
- x1 = X + R * Math.cos(Rad);
- x2 = x1 - Len * Math.cos(Rad);
- y1 = Y + R * Math.sin(Rad);
- y2 = y1 - Len * Math.sin(Rad);
- System.out.println(x1+","+x2+","+y1+","+y2);
- g2.draw(new Line2D.Double(x1, y1, x2, y2));
- }
-
- Date dt = new Date(5);
- DateFormat df = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
- String NowTime = df.format(dt);
-
- int hh = Integer.parseInt(NowTime.substring(9, 11));
- int mm = Integer.parseInt(NowTime.substring(12, 14));
- if (hh > 12) {
- hh = hh - 12;
- }
- int ss = Integer.parseInt(NowTime.substring(15, 17));
-
- g2.setPaint(Color.GREEN);
- Rad = Math.toRadians(30 * hh - 90 + mm / 2);
- Len = 0.6 * R;
- x2 = X + Len * Math.cos(Rad);
- y2 = Y + Len * Math.sin(Rad);
- g2.draw(new Line2D.Double(X, Y, x2, y2));
-
- g2.setPaint(Color.BLUE);
- Rad = Math.toRadians(6 * mm - 90);
- Len = 0.8 * R;
- x2 = X + Len * Math.cos(Rad);
- y2 = Y + Len * Math.sin(Rad);
- g2.draw(new Line2D.Double(X, Y, x2, y2));
-
- g2.setPaint(Color.RED);
- Rad = Math.toRadians(6 * ss - 90);
- Len = 0.9 * R;
- x2 = X + Len * Math.cos(Rad);
- y2 = Y + Len * Math.sin(Rad);
- g2.draw(new Line2D.Double(X, Y, x2, y2));
-
- Font f1 = new Font("Serif", Font.BOLD, 14);
- g2.setFont(f1);
- g2.setColor(Color.RED);
- g2.drawString(NowTime, 130, 25);
- }