2015-04-15 2 views
0
// The class for drawing arcs on a panel 
1 class ArcsPanel extends JPanel { 
2 @Override 
3 protected void paintComponent(Graphics g) { 
4  super.paintComponent(g); 
5 
6  int xCenter = getWidth()/2; 
7  int yCenter = getHeight()/2; 
8  int radius = (int)(Math.min(getWidth(), getHeight()) * 0.4); 
9 
10 int x = xCenter - radius; 
11 int y = yCenter - radius; 
12 
13 g.fillArc(x, y, 2 * radius, 2 * radius, 0, 30); 
14 g.fillArc(x, y, 2 * radius, 2 * radius, 90, 30); 
15 g.fillArc(x, y, 2 * radius, 2 * radius, 180, 30); 
16 g.fillArc(x, y, 2 * radius, 2 * radius, 270, 30); 
17 } 
18} 

Не понимаю строки 8. Объяснение формулы получения радиуса. Откуда он получает формулу 0,4 в радиусе? я не нашел формулу. Поиск радиуса дуги отличается.Радиус дуги в java

Я нашел его от «Введение в Java Программирование, полная версия (9-е издание); Листинг 13.4 Пример, страница: 489 (522/1947)»

ответ

2

0.4, кажется, относительное значение, что означает « угловой радиус составляет 40% от меньшей ширины и высоты ».

EDIT: Это прекрасный пример, почему неудовлетворительный код и магические константы плохие. Как правило, вы должны использовать переменную или параметр вместо магической константы.

Смежные вопросы