Я борюсь со следующей проблемой: мне даны n
точки и радиус, и я должен разместить их на окружности как можно симметричнее.
В настоящее время я использовал что-то вроде этого:
float theta = 360.0f / n;
int i = 0;
for (Word w : e.getValue()) {
double newX = Math.sin(theta * i) * RADIUS + I_OFFSET_X;
double newY = Math.cos(theta * i) * RADIUS + I_OFFSET_Y;
mxCell v2 = (mxCell) graph.insertVertex(parent, null, w.getValue(), newX, newY, OW_WIDTH, OW_HEIGHT,"shape=ellipse");
graph.insertEdge(parent, null, "", v1, v2);
i++;
}
где n
— количество моих баллов.
Это отлично работает для достаточно большого n, но, например, для n=3
я получаю что-то вроде:
Я действительно хотел бы иметь что-то вроде:
(плохие навыки рисования - это плохо..)
В общем, что-то настолько симметричное, насколько это возможно, было бы здорово.
Любые подсказки о том, как решить эту проблему?
Спасибо ‹3
sin
иcos
, как вы предполагаете? - person Jongware   schedule 02.05.2015Java
иjgraphx
и да, я предполагаю, что они работают с степенями, но я действительно могу ошибаться - person Alexandr   schedule 02.05.2015