Computes the N-D unit vector in the direction of the vector supplied. - Java java.lang

Java examples for java.lang:Math Vector

Description

Computes the N-D unit vector in the direction of the vector supplied.

Demo Code

/*/*from   w  w w. j  a v  a2 s .c  o m*/
 * #%L
 * VisBio application for visualization of multidimensional biological
 * image data.
 * %%
 * Copyright (C) 2002 - 2014 Board of Regents of the University of
 * Wisconsin-Madison.
 * %%
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as
 * published by the Free Software Foundation, either version 2 of the
 * License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public
 * License along with this program.  If not, see
 * <http://www.gnu.org/licenses/gpl-2.0.html>.
 * #L%
 */
//package com.java2s;

public class Main {
    /** Computes the N-D unit vector in the direction of the vector supplied. */
    public static float[] unit(final float[] v) {
        final float mag = mag(v);
        final float[] vHat = new float[v.length];
        for (int i = 0; i < v.length; i++) {
            vHat[i] = v[i] / mag;
        }
        return vHat;
    }

    /** Computes the magnitude of an N-D vector. */
    public static float mag(final float[] a) {
        return (float) Math.sqrt(dot(a, a));
    }

    /** Computes the dot product of two N-D vectors. */
    public static float dot(final float[] a, final float[] b) {
        float sum = 0f;
        for (int i = 0; i < a.length; i++) {
            sum += a[i] * b[i];
        }
        return sum;
    }
}

Related Tutorials