По умолчанию начало системы координат находится в верхнем левом углу. Каким образом я могу настроить так, чтобы начало системы координат находилось точно в центре моего созданного окна?
Если речть про java swing, то можно сделать вот так:
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// сдвинуть полотно в центр панели
g.translate(getWidth()/2, getHeight()/2);
// нарисовать все то что рисовали тут до этого
paintStuff(g);
// сдвинуть полотно обратно
g.translate(-getWidth()/2, -getHeight()/2);
}
JFrame frame = new JFrame();
frame.add(new JPanel(){
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.translate(getWidth()/2, getHeight()/2);
paintStuff(g);
g.translate(-getWidth()/2, -getHeight()/2);
}
private void paintStuff(Graphics g) {
for (double i = 0; i < Math.PI*2; i+= Math.PI/6){
int x = (int) (Math.cos(i)*50);
int y = (int) (Math.sin(i)*50);
int s = 5;
g.fillRect(x-s,y-s, s*2, s*2);
}
}
});
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setSize(400, 400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
Вот что получается:
Так же, если лень считать как вернуть состояние обратно, допустим вы еще что-то поворачивали и потом опять двигали, то можно сделать так
super.paintComponent(g);
// создаем дочерний контекст
final Graphics2D g2 = (Graphics2D)g.create();
try {
// поворачиваем канву
g2.rotate(0.4);
//двигаем её в центр
g2.translate(getWidth()/2, getHeight()/2);
// рисуем
paintStuff(g2);
} finally {
// уничтожаем контекст
g.dispose();
}
Результат:
Виртуальный выделенный сервер (VDS) становится отличным выбором
Приложение на spring, со слоями web, business и persistence
Есть фрагмент в котором я подгружаю данные из firebaseРодительский каталог называется "News" У него есть "ребёнок" news1, news2, newsn
Подскажите пожалуйста! Как в Freemarker проверить существования ключа в Map и вывести значения?