package com.wgcloud.util;
|
|
import com.wgcloud.dto.TuopuNodeDto;
|
|
import java.util.List;
|
|
/**
|
* 拓扑图工具类
|
*/
|
public class TuopuUtil {
|
|
/**
|
* 设置每个节点的坐标
|
* @param list
|
*/
|
public static void initList(List<TuopuNodeDto> 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(".")));
|
}
|
|
|
}
|