2
Мне нужно нарисовать некоторые квадраты внутри другого квадрата, но я не знаю, как повернуть мои квадраты по центру их и сделать их меньше? Вот картина, как это должно выглядеть в конце:Как нарисовать и повернуть квадрат внутри центра другой площади?
Теперь у меня есть некоторый код, который нарисовать квадраты, которые делают круг.
class MySquare extends JComponent {
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
for (int i = 0; i < 20; i++) {
g2d = (Graphics2D) g.create();
g2d.rotate(Math.toRadians(45 - (i * 10)), 100, 100);
// Difrent colors:
if (i % 2 == 0)
g2d.setColor(Color.black);
else
g2d.setColor(Color.green);
g2d.fillRect(50, 50, 100, 100);
}
}
}
public class DrawRect {
public static void main(String[] a) {
JFrame window = new JFrame();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setBounds(30, 30, 800, 800);
window.getContentPane().add(new MySquare());
window.setVisible(true);
}
}
я запускаю этот код, но квадраты даже не в одном месте, так что я Я не уверен, хочу ли я этого. – user2245026
пользовательская покраска для компонентов Swing должна выполняться в paintComponent (против краски) - to @ user2245026, а также – kleopatra
@ user2245026 Вы правы, космические преобразования всегда сбивают с толку. Я должен был сделать перевод перед поворотом. Обновил код и сделал SSCCE, чтобы показать концепцию. –