Мне нужно нарисовать круг вокруг вершины в JUNG. Круг определяется вершиной как центром и заданным радиусом r.JUNG2: Как нарисовать круг?
ответ
Что-то вроде этого, я думаю. Это даст вам очки за круг с заданными radius
. Чтобы настроить разрешение точек, измените значение x+=0.01
на большее/меньшее значение по мере необходимости. Чтобы переместить центр круга в произвольную точку (p,q)
, просто добавьте его в (x,y)
, то есть plot(x+p,y+q);
.
double radius = 3;
for (double x = -radius; x <= radius; x += 0.01) {
double y = Math.sqrt(radius * radius - x * x);
plot(x, y);//top half of the circle
plot(x, -y);//bottom half of the circle
}
EDIT: Похоже, что JUNG не действительно XY-график, но структура сети/график. Итак, все, что вам нужно, - это расставить свои точки по кругу, используя один из предоставленных макетов. CircleLayout
и KKLayout
, похоже, делают трюк, хотя CircleLayout
дает странные результаты, когда есть много узлов. Вот полный пример кода:
//Graph holder
Graph<Integer, String> graph = new SparseMultigraph<Integer, String>();
//Create graph with this many nodes and edges
int nodes = 30;
for (int i = 1; i <= nodes; i++) {
graph.addVertex(i);
//connect this vertext to vertex+1 to create an edge between them.
//Last vertex is connected to the first one, hence the i%nodes
graph.addEdge("Edge-" + i, i, (i % nodes) + 1);
}
//This will automatically layout nodes into a circle.
//You can also try CircleLayout class
Layout<Integer, String> layout = new KKLayout<Integer, String>(graph);
layout.setSize(new Dimension(300, 300));
//Thing that draws the graph onto JFrame
BasicVisualizationServer<Integer, String> vv = new BasicVisualizationServer<Integer, String>(layout);
vv.setPreferredSize(new Dimension(350, 350)); // Set graph dimensions
JFrame frame = new JFrame("Circle Graph");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(vv);
frame.pack();
frame.setVisible(true);
Я выбрал SparseMultiGraph
, потому что это то, что было в JUNG tutorial. Существуют и другие типы графиков, но я не уверен, в чем разница.
Вы также можете использовать StaticLayout
, который может принимать вершины (x,y)
, а затем использовать мой оригинальный код для построения точек, но это не было бы столь же изящным для рамки JUNG. Однако зависит от ваших требований.
- 1. Как нарисовать прямую линию JUNG2?
- 2. Как нарисовать круг линий
- 3. Как нарисовать круг CSS
- 4. Как нарисовать круг в андроиде?
- 5. Как нарисовать круг в opengles
- 6. Как нарисовать круг в html
- 7. Как нарисовать круг по пикселям?
- 8. Как нарисовать круг в cocos2dx
- 9. Как нарисовать круг в Drawable.draw
- 10. Как нарисовать круг, используя opengl4
- 11. как нарисовать круг в видео
- 12. Как нарисовать круг на холсте?
- 13. нарисовать круг с pyplot
- 14. Свинг Невозможно нарисовать круг
- 15. Как нарисовать то же самое имя края от JUNG2
- 16. Как нарисовать каждую вершину сетки как круг
- 17. Как нарисовать объектив, как круг на мышином
- 18. Нарисовать круг с использованием точек
- 19. нарисовать цветной круг в UITableViewCell
- 20. нарисовать круг над изображения OpenCV
- 21. нарисовать круг прямоугольников в Xcode
- 22. javafx - Нарисовать круг нажатием кнопки
- 23. Расчет позиции, чтобы нарисовать круг
- 24. Попытка нарисовать круг в LibGDX
- 25. Как нарисовать круг в Свифт 3
- 26. Android: Как нарисовать круг в двух точках?
- 27. Как нарисовать динамический круг в Objective-C
- 28. Как нарисовать гладкий эллипс (круг) в Qt?
- 29. Как нарисовать полный круг с изображением
- 30. Как нарисовать круг на MapBox MGLMapView?
Хм, я довольно новичок в java и jung, как применить это к существующему сюжету JUNG с помощью JFrame? – mamruoc
Извините, я не знаком с самим JUNG. Думаю, вам нужно сохранить предыдущую вершину '(x, y)' в переменной и создать ребро между предыдущим и текущим в цикле. Затем добавьте ребро к графику. Однако не уверен в точном API. Я посмотрю на это, но было бы неплохо, если бы кто-то другой опубликовал ответ с правильным использованием API. Кто угодно? – rodion
Я согласен с этим. Я получил его на работу, но я не использовал JUNG. – mamruoc