#java #graphics #2d #java-2d
#java #графика #2d #java-2d
Вопрос:
У меня есть 2 разных списка. Каждая из них содержит пары значений x и y (они имеют как положительные, так и отрицательные значения). Как я могу нарисовать их на 2D-оси? Я хочу поставить points
для каждого значения, и они будут синими для первого списка и красными для второго списка.
Тип моих списков:
List<List<Double>>
List<Double> inside of List<...> has 2 variables, first of it for x value and the second one is for y value.
Однако мне просто нужно научиться рисовать двумерную графику на Java (настольное приложение) и расставлять точки везде, где я хочу, улучшение кода для моих переменных менее важно.
PS:
Я хочу more and more simple
такую графику:
Что-то вроде:
Ответ №1:
вы могли бы использовать библиотеку, подобную http://www.jfree.org/jfreechart / (LGPL-Лицензия) в Интернете есть множество примеров, и это довольно просто в использовании.
вот пример, который, кажется, соответствует вашим требованиям:
http://www.java2s.com/Code/Java/Chart/JFreeChartMarkerDemo1.htm
Ответ №2:
Предполагая, что вы используете Swing с панелью, вы можете использовать следующее:
public class JImagePanelExample extends JPanel {
private BufferedImage image;
private Graphics2D drawingBoard;
private int x, y; // Image position in the panel
// Let's assume image is a chart and you need to draw lines
public JImagePanelExample(BufferedImage image, int x, int y) {
super();
this.image = image;
// Retrieving a mean to draw lines
drawingBoard = image.createGraphics();
// Draw what you need to draw (see other methods too)
drawingBoard.drawLine(0, 10, 35, 55);
}
// Called by Swing to draw the image in the panel
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, x, y, null);
}
}
Если вы не хотите использовать Swing и вам просто нужно рисовать в 2D, сосредоточьтесь на BufferedImage
и Graphics2D
только.
Ответ №3:
Существует Java 2D API:http://java.sun.com/products/java-media/2D и многие библиотеки построения графиков, которые легко найти с помощью веб-поиска.