Calculates the normalized dot product of two vectors. - Java java.lang

Java examples for java.lang:Math Vector

Description

Calculates the normalized dot product of two vectors.

Demo Code


//package com.java2s;

import java.awt.geom.Point2D;

public class Main {
    /**/*from   w w w . j  av  a 2s .c  o  m*/
     * Calculates the normalized dot product of two vectors.
     * {@code a * b / (|a| * |b|)}
     * 
     * @param a The first vector.
     * @param b The second vector.
     * @return The normalized dot product.
     */
    public static double dotNorm(final Point2D a, final Point2D b) {
        return dot(a, b) / (vecLength(a) * vecLength(b));
    }

    /**
     * Calculates the dot product of two vectors.
     * 
     * @param a The first vector.
     * @param b The second vector.
     * @return The dot product.
     */
    public static double dot(final Point2D a, final Point2D b) {
        return a.getX() * b.getX() + a.getY() * b.getY();
    }

    /**
     * Calculates the length of a vector. This operation is relatively expensive.
     * To compare two distances, use {@link #vecLengthSqr(Point2D)}.
     * 
     * @param v The vector.
     * @return The length of the vector.
     */
    public static double vecLength(final Point2D v) {
        return Math.sqrt(vecLengthSqr(v));
    }

    /**
     * Calculates the squared length of a vector. This method is much cheaper than
     * {@link #vecLength(Point2D)}.
     * 
     * @param v The vector.
     * @return The squared length.
     */
    public static double vecLengthSqr(final Point2D v) {
        return dot(v, v);
    }
}

Related Tutorials