我正在为即将到来的测试练习挥杆能力,Fried 让我想到了画这样的生物危害标志:
替代文字 http://img62.imageshack.us/img62/8372/lab6b.gif
我可以用 Elipse2D 绘制圆圈,但后来我不知何故需要切割这 3 个三角形。任何想法我该怎么做?
我正在为即将到来的测试练习挥杆能力,Fried 让我想到了画这样的生物危害标志:
替代文字 http://img62.imageshack.us/img62/8372/lab6b.gif
我可以用 Elipse2D 绘制圆圈,但后来我不知何故需要切割这 3 个三角形。任何想法我该怎么做?
您可以为此使用 Java2D 和画布。您可能使用的是 Circle 和 Arc。你应该有三个 30 度的弧。
我尝试在框架上使用简单的图形。
这是一个尝试
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class Biohazard {
public static void main(String[] args) {
new Biohazard();
}
public Biohazard() {
JFrame frame = new JFrame("Biohazard");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new MyComponent());
frame.setSize(260, 280);
frame.setVisible(true);
}
public class MyComponent extends JComponent {
public void paint(Graphics g) {
int height = 120;
int width = 120;
g.setColor(Color.yellow);
g.fillOval(60, 60, height, width);
g.setColor(Color.black);
g.drawOval(60, 60, height, width);
int swivels = 6;
int commonx, commony, commonh, commonw;
for(int i=0;i<swivels;i++){
commonx = commony = 120-i*10;
commonh = commonw = i*20;
g.drawArc(commonx, commony, commonh, commonw, 60 , 60);
g.drawArc(commonx, commony, commonh, commonw, 180 , 60);
g.drawArc(commonx, commony, commonh, commonw, 300 , 60);
}
}
}
}
原文:源代码可以在http://pastebin.com/HSNFx7Gq找到
您可以使用该类通过以度为单位指定和参数Arc2D
来绘制每条线。start
extent
也许这实际上很容易(我不确定 Swing API 如何处理行)。从圆心到圆周上的点画线,然后跳过这些部分进行画线。