Android Open Source - aCARdeRUN Vector2






From Project

Back to project page aCARdeRUN.

License

The source code is released under:

Apache License

If you think the Android project aCARdeRUN listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/* Copyright 2012 Dennis Grewe
 *//  w w w.  java 2s .  com
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License. */
package de.hdm.mib.dg041.math;

/**
 * @author dennis.grewe [dg041@hdm-stuttgart.de]
 * Created on 23.02.2012.
 */
public class Vector2
{
    // --------------------------------------------------------
    // PROPERTIES
    // --------------------------------------------------------

    public float[] v = new float[2];

    // --------------------------------------------------------
    // CONSTRUCTORS
    // --------------------------------------------------------

    public Vector2()
    {
        v[0] = 0.0f;
        v[1] = 0.0f;
    }

    public Vector2(float x, float y)
    {
        v[0] = x;
        v[1] = y;
    }

    // --------------------------------------------------------
    // METHODS
    // --------------------------------------------------------

    /**
     * This method defines a dot on the current vector
     *
     * @param v1
     * @param v2
     * @return
     */
    public static float dot(Vector2 v1, Vector2 v2)
    {
      return v1.v[0] * v2.v[0] + v1.v[1] * v2.v[1];
    }

    /**
     * This method returns the vecrot value on the given index.
     *
     * @param index
     * @return
     */
    public float get(int index)
    {
      return v[index];
    }

    /**
     * @return the x value of the vector
     */
    public float getX()
    {
      return v[0];
    }

    /**
     * @return the y value of the vector
     */
    public float getY()
    {
      return v[1];
    }

    /**
     * @return the length of the vector
     */
    public float getLength()
    {
      return (float) Math.sqrt(
      v[0] * v[0] + v[1] * v[1]);
    }
  
    public float getLengthSqr()
    {
      return (v[0] * v[0] + v[1] * v[1]);
    }

    /**
     * The method normalizes the current vector of this class.
     *
     * @return
     */
    public Vector2 normalize()
    {
        float l = getLength();
        for (int i = 0; i < 2; ++i)
        {
            v[i] /= l;
        }
        return this;
    }

    /**
     * This method normalize a given vector
     *
     * @param v
     * @return
     */
    public static Vector2 normalize(Vector2 v)
    {
        Vector2 result = new Vector2();
        float l = v.getLength();
        for (int i = 0; i < 2; ++i)
        {
            result.v[i] /= l;
        }
        return result;
    }
  

    // METHODS TO DETECT COLLISIONS etc.

    /**
     * This method sums two given vectors and returns the result.
     *
     * @param v1
     * @param v2
     * @return
     */
    public static Vector2 add(Vector2 v1, Vector2 v2)
    {
      return new Vector2(v1.v[0] + v2.v[0], v1.v[1] + v2.v[1]);
    }

    /**
     * This method divides the vector depending on the given value.
     *
     * @param v
     * @param s
     * @return
     */
    public static Vector2 divide(Vector2 v, float s)
    {
      return new Vector2(v.v[0] / s, v.v[1] / s);
    }

    /**
     * This method multiplies the current vector depending on the given value.
     *
     * @param v
     * @param s
     * @return
     */
    public static Vector2 multiply(Vector2 v, float s)
    {
      return new Vector2(v.v[0] * s, v.v[1] * s);
    }

    public static Vector2 multiply(float s, Vector2 v)
    {
      return new Vector2(s * v.v[0], s * v.v[1]);
    }

    public static Vector2 subtract(Vector2 v1, Vector2 v2)
    {
      return new Vector2(v1.v[0] - v2.v[0], v1.v[1] - v2.v[1]);
    }

    /**
     * This method sets the new value to the position of the vector
     *
     * @param index
     * @param value
     */
    public void set(int index, float value)
    {
      v[index] = value;
    }

    /**
     * @param x set the x value of the vector
     */
    public void setX(float x)
    {
      v[0] = x;
    }

    /**
     * @param y set the y value of the vector
     */
    public void setY(float y)
    {
      v[1] = y;
    }
}




Java Source Code List

de.hdm.mib.dg041.acarderun.aCARdeRunActivity.java
de.hdm.mib.dg041.acarderun.aCARdeRunView.java
de.hdm.mib.dg041.collision.AxisAlignedBoundingBox.java
de.hdm.mib.dg041.collision.Circle.java
de.hdm.mib.dg041.collision.Point.java
de.hdm.mib.dg041.collision.Shape2D.java
de.hdm.mib.dg041.game.GameScreen.java
de.hdm.mib.dg041.game.Game.java
de.hdm.mib.dg041.game.HUD.java
de.hdm.mib.dg041.game.Hero.java
de.hdm.mib.dg041.game.InGameScreen.java
de.hdm.mib.dg041.game.MenuScreen.java
de.hdm.mib.dg041.game.Obstacle.java
de.hdm.mib.dg041.game.Ranking.java
de.hdm.mib.dg041.game.World.java
de.hdm.mib.dg041.game.aCARdeRunGame.java
de.hdm.mib.dg041.graphics.BlendFactor.java
de.hdm.mib.dg041.graphics.Camera.java
de.hdm.mib.dg041.graphics.CompareFunction.java
de.hdm.mib.dg041.graphics.GraphicDevice.java
de.hdm.mib.dg041.graphics.Material.java
de.hdm.mib.dg041.graphics.Mesh.java
de.hdm.mib.dg041.graphics.Renderer.java
de.hdm.mib.dg041.graphics.Side.java
de.hdm.mib.dg041.graphics.SpriteFont.java
de.hdm.mib.dg041.graphics.TextBuffer.java
de.hdm.mib.dg041.graphics.TextureBlendMode.java
de.hdm.mib.dg041.graphics.TextureFilter.java
de.hdm.mib.dg041.graphics.TextureWrapMode.java
de.hdm.mib.dg041.graphics.Texture.java
de.hdm.mib.dg041.graphics.VertexBuffer.java
de.hdm.mib.dg041.graphics.VertexElement.java
de.hdm.mib.dg041.input.InputEvent.java
de.hdm.mib.dg041.input.InputSystem.java
de.hdm.mib.dg041.math.MathHelper.java
de.hdm.mib.dg041.math.Matrix4x4.java
de.hdm.mib.dg041.math.Vector2.java
de.hdm.mib.dg041.math.Vector3.java
de.hdm.mib.dg041.math.Vector4.java