Here you can find the source of dotNorm(final Point2D a, final Point2D b)
Parameter | Description |
---|---|
a | The first vector. |
b | The second vector. |
public static final double dotNorm(final Point2D a, final Point2D b)
//package com.java2s; //License from project: Open Source License import java.awt.geom.Point2D; public class Main { /**/*from w w w .j a v 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 final 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 final 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 final 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 final double vecLengthSqr(final Point2D v) { return dot(v, v); } }