Я практикую свои способности к колебанию к предстоящему тесту, и пожаренный дал мне идею потянуть знак биологической опасности как это:
сопроводительный текст http://img62.imageshack.us/img62/8372/lab6b.gif
Я мог нарисовать круги с Elipse2D, но затем я так или иначе должен сократить те 3 треугольника. Какие-либо идеи, как я могу сделать это?
Для этого вы можете использовать Java2D и холст. Вещи, которые вы можете использовать, это Круг и Дуга. У вас должно получиться три дуги по 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
и экстент
в градусах.
Возможно, это действительно довольно просто (я не уверен, как Swing API обрабатывает строки). Нарисуйте линии, идущие от центра к точкам на окружности круга, и просто пропустите эти части для рисования линий.