Java examples for 2D Graphics:Curve
get Ending Angle from CubicCurve2D
/* ------------------------------------------------------------------------ * PlantUML : a free UML diagram generator * ------------------------------------------------------------------------ * * (C) Copyright 2009, Arnaud Roques//from w ww.j a v a 2s. c o m * * Project Info: http://plantuml.sourceforge.net * * This file is part of PlantUML. * * PlantUML 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 3 of the License, or * (at your option) any later version. * * PlantUML 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 Lesser General Public * License for more details. * * You should have received a copy of the GNU General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, * USA. * * [Java is a trademark or registered trademark of Sun Microsystems, Inc. * in the United States and other countries.] * * Original Author: Arnaud Roques * * Revision $Revision: 4236 $ * */ //package com.java2s; import java.awt.geom.CubicCurve2D; import java.awt.geom.Point2D; public class Main { static double getEndingAngle(final CubicCurve2D.Double left) { if (left.getCtrlP2().equals(left.getP2())) { // assert left.getP1().equals(left.getCtrlP1()); return getAngle(left.getP1(), left.getP2()); } return getAngle(left.getCtrlP2(), left.getP2()); } static double getAngle(Point2D p1, Point2D p2) { if (p1.equals(p2)) { throw new IllegalArgumentException(); } double a = -Math .atan2(p2.getY() - p1.getY(), p2.getX() - p1.getX()); a = a * 180.0 / Math.PI; a -= 90; if (a >= 360.0) { a -= 360.0; } if (a < 0.0) { a += 360.0; } return a; } }