Java Geometry Algorithm parabolaByFocusAndDirectrix(Point2D.Double focus, double directrix)

Here you can find the source of parabolaByFocusAndDirectrix(Point2D.Double focus, double directrix)

Description

Returns parabola with given point as its focus.

License

Apache License

Parameter

Parameter Description
focus focsu of the parabola
directrix x-value of the directrix

Return

an array [a,b,c] where the parabola is x = a*y^2 + b*y + c

Declaration

public static double[] parabolaByFocusAndDirectrix(Point2D.Double focus, double directrix) 

Method Source Code


//package com.java2s;
/*//from w  w w  . jav  a2s. com
 * #%L
 * BlaiseMath
 * --
 * Copyright (C) 2009 - 2015 Elisha Peterson
 * --
 * 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.
 * #L%
 */

import java.awt.geom.Point2D;

public class Main {
    /**
     * Returns parabola with given point as its focus.
     * @param focus focsu of the parabola
     * @param directrix x-value of the directrix
     * @return an array [a,b,c] where the parabola is x = a*y^2 + b*y + c
     */
    public static double[] parabolaByFocusAndDirectrix(Point2D.Double focus, double directrix) {
        return new double[] { -.5 / (directrix - focus.x), focus.y / (directrix - focus.x),
                .5 * (focus.x + directrix - focus.y * focus.y / (directrix - focus.x)) };
    }
}

Related

  1. nearestColinearPoint(final double x1, final double y1, final double x2, final double y2, double x, double y)
  2. nearestColinearPoint(final Line2D segment, final Point2D point)
  3. nearestPointOnLine(Line2D l, Point2D p, boolean clampToSegment, Point2D dest)
  4. newZeroPoint()
  5. oneThirdPoint(@Nonnull Point2D pA, @Nonnull Point2D pB)
  6. parameterizeCurve(Point[] coefficients, Point startPoint, Point endPoint, Point controlPoint1, Point controlPoint2)
  7. perpendicular(Point a, Point z, double aDist, double size, boolean clockwise)
  8. perpendicularScalarProjection(Point2D.Double projVec, Point2D.Double dir)
  9. plotBezier(GeneralPath path, @Nonnull Point2D p0, @Nonnull Point2D p1, @Nonnull Point2D p2, @Nonnull Point2D p3, int depth, double displacement)