package com.wgcloud.util; import com.wgcloud.dto.TuopuNodeDto; import java.util.List; /** * 拓扑图工具类 */ public class TuopuUtil { /** * 设置每个节点的坐标 * @param list */ public static void initList(List list) { int centerX = 760;//圆心坐标 int centerY = 520; int radius = getRadius(list.size());//半径 int count = list.size(); //count: 节点数目 for (int i = 0; i < list.size(); i++) { int x = centerX + (int) (radius * Math.cos(Math.PI * 2 / count * i)); int y = centerY + (int) (radius * Math.sin(Math.PI * 2 / count * i)); // System.out.println(x+","+y); list.get(i).setX(x); list.get(i).setY(y); // node[i].setX(x); // node[i].setY(y); } } public static int getRadius(int count) { if (count == 1) { count = 2; } double disitem = (double) 360 / count; double minr = 5 / Math.sin(0.5 * disitem * Math.PI / 180); double noder = minr * 1.5 + 5 * 3 + 80; if (noder < 260) { noder = 260; } return Integer.valueOf(String.valueOf(noder).substring(0, String.valueOf(noder).indexOf("."))); } }