示例#1
0
 private void rotate(final double delta) {
   for (final VNode n : graph.getPaintedShapes()) {
     final float newX =
         (float) ((n.getX() - centerX) * Math.cos(delta) - (n.getY() - centerY) * Math.sin(delta))
             + centerX;
     final float newY =
         (float) ((n.getX() - centerX) * Math.sin(delta) + (n.getY() - centerY) * Math.cos(delta))
             + centerY;
     n.setX(newX);
     n.setY(newY);
     graph.updateEdges(n, false);
   }
   angle += delta;
 }
示例#2
0
  private void zoom(final double factor) {
    if (factor < 1) {
      zoomFactor--;
    } else {
      zoomFactor++;
    }
    for (final VNode n : graph.getPaintedShapes()) {
      n.setX((float) ((n.getX() - centerX) * factor) + centerX);
      n.setY((float) ((n.getY() - centerY) * factor) + centerY);

      if (n.getView() instanceof Circle) {
        if (factor > 1) {
          ((Circle) n.getView()).setRadius((((Circle) n.getView()).getRadius() + 1));
        } else {
          ((Circle) n.getView()).setRadius((((Circle) n.getView()).getRadius() - 1));
        }
      }
      graph.updateEdges(n, false);
    }
    client.updateVariable(paintableId, "zoomFactor", zoomFactor, true);
  }