Java Distance Calculate distanceToSegmentSquared(float px, float py, float vx, float vy, float wx, float wy)

Here you can find the source of distanceToSegmentSquared(float px, float py, float vx, float vy, float wx, float wy)

Description

_more_

License

Apache License

Parameter

Parameter Description
px _more_
py _more_
vx _more_
vy _more_
wx _more_
wy _more_

Return

_more_

Declaration

public static float distanceToSegmentSquared(float px, float py, float vx, float vy, float wx, float wy) 

Method Source Code

//package com.java2s;
/*/*from  w  w  w .j  a v  a 2 s . c  o  m*/
* Copyright (c) 2008-2018 Geode Systems LLC
*
* 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.
*/

public class Main {
    /**
     * _more_
     *
     * @param px _more_
     * @param py _more_
     * @param vx _more_
     * @param vy _more_
     * @param wx _more_
     * @param wy _more_
     *
     * @return _more_
     */
    public static float distanceToSegmentSquared(float px, float py, float vx, float vy, float wx, float wy) {
        float l2 = distanceBetweenPoints(vx, vy, wx, wy);
        if (l2 == 0) {
            return distanceBetweenPoints(px, py, vx, vy);
        }
        float t = ((px - vx) * (wx - vx) + (py - vy) * (wy - vy)) / l2;
        if (t < 0) {
            return distanceBetweenPoints(px, py, vx, vy);
        }
        if (t > 1) {
            return distanceBetweenPoints(px, py, wx, wy);
        }

        return distanceBetweenPoints(px, py, (vx + t * (wx - vx)), (vy + t * (wy - vy)));
    }

    /**
     * _more_
     *
     * @param vx _more_
     * @param vy _more_
     * @param wx _more_
     * @param wy _more_
     *
     * @return _more_
     */
    public static float distanceBetweenPoints(float vx, float vy, float wx, float wy) {
        return square(vx - wx) + square(vy - wy);
    }

    /**
     * _more_
     *
     * @param x _more_
     *
     * @return _more_
     */
    public static float square(float x) {
        return (float) Math.pow(x, 2);
    }
}

Related

  1. distanceToAncestor(Class entity, Class ancestor)
  2. distanceToClass(Class theClass, Class theAncestor)
  3. distanceToInterface(Class theClass, Class theInterface)
  4. distanceToPoint(float x1, float y1, float x2, float y2)
  5. distanceToSegment(float ax, float ay, float bx, float by, float px, float py)
  6. distanceVincenty(final double lat1, final double lon1, final double lat2, final double lon2)
  7. distancia(int[] c1, int[] c2)
  8. distAngle(double[] pos1, double[] pos2)
  9. distBetween(float x1, float y1, float x2, float y2)