Example usage for org.apache.commons.math3.geometry.euclidean.twod Vector2D Vector2D

List of usage examples for org.apache.commons.math3.geometry.euclidean.twod Vector2D Vector2D

Introduction

In this page you can find the example usage for org.apache.commons.math3.geometry.euclidean.twod Vector2D Vector2D.

Prototype

public Vector2D(double a, Vector2D u) 

Source Link

Document

Multiplicative constructor Build a vector from another one and a scale factor.

Usage

From source file:org.evors.rs.sim.core.worldio.JSONWorld.java

public Collection<Shape2D> getWorldObjects() {
    ArrayList<Shape2D> worldobjects = new ArrayList<>();
    for (JSONWorldObject obj : objects) {
        worldobjects/* www. j  a va  2s. co  m*/
                .add(Polygon.createRectangleFromCenter(new Vector2D(obj.getPosition()[0], obj.getPosition()[1]),
                        new Vector2D(obj.getSize()[0], obj.getSize()[1]), 0));
    }
    return worldobjects;
}

From source file:org.evors.rs.sim.robot.SimulatedRobotBody.java

@Override
public void step(double velocity, double angularVelocity) {
    if (!live) {//from www. j  a  v  a2s  .c  o m
        return;
    }
    //Calculate movement vector
    double dist = velocity * timeStepLength;
    Vector2D changeV = new Vector2D(dist * LookupFunctions.cos(heading), dist * LookupFunctions.sin(heading));
    shape.translate(changeV);
    position = position.add(changeV);

    //Calculate actual rotation
    double changeA = (angularVelocity * timeStepLength) % (2 * Math.PI);
    shape.rotate(changeA);
    heading += changeA;

    world.checkCollisions(this);
}

From source file:org.evors.rs.ui.sandpit.SandPitCamera.java

public SandPitCamera(Vector2D windowSize, Vector2D initCenterPos, double initScale) {
    scale = initScale;//from  w ww  .j a  v  a  2 s  .  c om
    currentPosWorldCoord = new Vector2D(1, initCenterPos);
    setWindowSize(windowSize);
}

From source file:org.evors.rs.ui.sandpit.SandPitCamera.java

/**
 * Get the value of transform/*from   w  w  w  .j a v a 2 s  .c  o  m*/
 *
 * @return the value of transform
 */
public AffineTransform getTransform() {
    AffineTransform returnTransform = new AffineTransform();
    Vector2D currentPosScreenCoord = new Vector2D(getScale(), getCurrentPosWorldCoord());
    Vector2D halfWindow = getHalfWindowSize();
    returnTransform.translate(currentPosScreenCoord.getX() + halfWindow.getX(),
            currentPosScreenCoord.getY() + halfWindow.getY());
    returnTransform.scale(getScale(), -getScale());

    return returnTransform;
}

From source file:org.evors.rs.ui.sandpit.SandPitCamera.java

public final void setWindowSize(Vector2D windowSize) {
    this.windowSize = new Vector2D(1, windowSize);
}

From source file:org.evors.rs.ui.sandpit.SandPitCamera.java

public Vector2D convertWorldToScreenCoords(Vector2D worldCoords) {
    Vector2D halfWindow = getHalfWindowSize();
    return (new Vector2D(getScale(), worldCoords)).add(halfWindow);
}

From source file:org.evors.rs.ui.sandpit.SandPitCamera.java

public Vector2D convertScreenToWorldCoords(Vector2D screen) {
    Vector2D halfWindow = getHalfWindowSize();
    return new Vector2D(1 / getScale(), screen.subtract(halfWindow)).subtract(currentPosWorldCoord);
}

From source file:org.evors.rs.ui.sandpit.SandPitCamera.java

public Vector2D getHalfWindowSize() {
    return new Vector2D(0.5, getWindowSize());
}

From source file:org.evors.rs.ui.sandpit.SandPitCamera.java

public Rectangle2D getViewPortInWorldCoords() {
    Vector2D screenZeroZeroInWorldCoords = convertScreenToWorldCoords(Vector2D.ZERO);
    Vector2D screenWidthHeightInWorldCoords = convertScreenToWorldCoords(new Vector2D(2, getWindowSize()));

    Rectangle2D rect = new Rectangle2D.Double();
    rect.setFrame(screenZeroZeroInWorldCoords.getX(), screenZeroZeroInWorldCoords.getY(),
            screenWidthHeightInWorldCoords.getX(), screenWidthHeightInWorldCoords.getY());

    return rect;//  w  w  w.  j  a  va2s .co m
}

From source file:org.evors.rs.ui.sandpit.SandPitCanvas.java

public SandPitCanvas() {

    camera = new SandPitCamera(Vector2D.ZERO, Vector2D.ZERO, 50);
    grid = new Grid(camera);

    MouseAdapter mouseAdapter = new MouseAdapter() {
        private Vector2D prevCoord = Vector2D.NaN;

        @Override/*from   w  ww  . j av a  2  s.c om*/
        public void mouseDragged(MouseEvent me) {
            Vector2D newCoord = getCamera().convertScreenToWorldCoords(new Vector2D(me.getX(), me.getY()));
            if (prevCoord == Vector2D.NaN) {
                prevCoord = newCoord;
            } else {
                Vector2D sub = newCoord.subtract(prevCoord);
                getCamera().move(sub);
                draw();
            }
        }

        @Override
        public void mouseReleased(MouseEvent me) {
            prevCoord = Vector2D.NaN;
        }

        @Override
        public void mouseWheelMoved(MouseWheelEvent mwe) {
            getCamera().changeScale(-0.5 * mwe.getUnitsToScroll());
            draw();
        }

    };

    addMouseListener(mouseAdapter);
    addMouseMotionListener(mouseAdapter);
    addMouseWheelListener(mouseAdapter);

}