((Line2D.relativeCCW(iP1X, iP1Y, iP2X, iP2Y, jP1X, jP1Y) != Line2D.relativeCCW(iP1X, iP1Y, iP2X, iP2Y, jP2X, jP2Y)) && (Line2D.relativeCCW(jP1X, jP1Y, jP2X, jP2Y, iP1X, iP1Y) != Line2D.relativeCCW(jP1X, jP1Y, jP2X, jP2Y, iP2X, iP2Y)));
boolean intersects = ((Line2D.relativeCCW(iP1X, iP1Y, iP2X, iP2Y, jP1X, jP1Y) != Line2D.relativeCCW( iP1X, iP1Y, iP2X, iP2Y, jP2X, jP2Y)) && (Line2D .relativeCCW(jP1X, jP1Y, jP2X, jP2Y, iP1X, iP1Y) != Line2D .relativeCCW(jP1X, jP1Y, jP2X, jP2Y, iP2X, iP2Y)));
boolean intersects = ((Line2D.relativeCCW(iP1X, iP1Y, iP2X, iP2Y, jP1X, jP1Y) != Line2D.relativeCCW( iP1X, iP1Y, iP2X, iP2Y, jP2X, jP2Y)) && (Line2D .relativeCCW(jP1X, jP1Y, jP2X, jP2Y, iP1X, iP1Y) != Line2D .relativeCCW(jP1X, jP1Y, jP2X, jP2Y, iP2X, iP2Y)));
/** * @see prefuse.util.force.Force#getForce(prefuse.util.force.ForceItem) */ public void getForce(ForceItem item) { float[] n = item.location; int ccw = Line2D.relativeCCW(x1,y1,x2,y2,n[0],n[1]); float r = (float)Line2D.ptSegDist(x1,y1,x2,y2,n[0],n[1]); if ( r == 0.0 ) r = (float)Math.random() / 100.0f; float v = params[GRAVITATIONAL_CONST]*item.mass / (r*r*r); if ( n[0] >= Math.min(x1,x2) && n[0] <= Math.max(x1,x2) ) item.force[1] += ccw*v*dx; if ( n[1] >= Math.min(y1,y2) && n[1] <= Math.max(y1,y2) ) item.force[0] += -1*ccw*v*dy; }
@Override public boolean contains (Point point) { if (!super.contains(point)) { return false; } Line2D midLine = getMidLine(); if (midLine != null) { return midLine.relativeCCW(point) < 0; } return true; }
+ heightpar); switch (diag1.relativeCCW(xchild + widthchild / 2, ychild + heightchild / 2)) { case -1: if (diag2.relativeCCW(xchild + widthchild / 2, ychild + heightchild / 2) == -1) { xchild = xpar - widthchild / 2; break; case 1: if (diag2.relativeCCW(xchild + widthchild / 2, ychild + heightchild / 2) == 1) { xchild = xpar + widthpar - widthchild / 2;
/** * Creates and returns a line that is perpendicular to the specified * line. * * @param line the reference line ({@code null} not permitted). * @param pt1 a point on the reference line ({@code null} not * permitted). * @param size the length of the new line. * @param opposingPoint an opposing point, to define which side of the * reference line the perpendicular line will extend ({@code null} * not permitted). * * @return The perpendicular line. */ public static Line2D createPerpendicularLine(Line2D line, Point2D pt1, double size, Point2D opposingPoint) { double dx = line.getX2() - line.getX1(); double dy = line.getY2() - line.getY1(); double length = Math.sqrt(dx * dx + dy * dy); double pdx = dy / length; double pdy = -dx / length; int ccw = line.relativeCCW(opposingPoint); Point2D pt2 = new Point2D.Double(pt1.getX() - ccw * size * pdx, pt1.getY() - ccw * size * pdy); return new Line2D.Double(pt1, pt2); }
/** * Creates and returns a line that is perpendicular to the specified line. * * @param line the reference line ({@code null} not permitted). * @param b the base point, expressed as a percentage along the length of * the reference line. * @param size the size or length of the perpendicular line. * @param opposingPoint an opposing point, to define which side of the * reference line the perpendicular line will extend ({@code null} * not permitted). * * @return The perpendicular line. */ public static Line2D createPerpendicularLine(Line2D line, double b, double size, Point2D opposingPoint) { double dx = line.getX2() - line.getX1(); double dy = line.getY2() - line.getY1(); double length = Math.sqrt(dx * dx + dy * dy); double pdx = dy / length; double pdy = -dx / length; int ccw = line.relativeCCW(opposingPoint); Point2D pt1 = new Point2D.Double(line.getX1() + b * dx, line.getY1() + b * dy); Point2D pt2 = new Point2D.Double(pt1.getX() - ccw * size * pdx, pt1.getY() - ccw * size * pdy); return new Line2D.Double(pt1, pt2); }
StemInter stem = (StemInter) inter; Point2D stemMiddle = PointUtil.middle(stem.getMedian()); VerticalSide vSide = (median.relativeCCW(stemMiddle) > 0) ? TOP : BOTTOM; Link link = checkLink(stem, vSide, scale);
int direction = Line2D.relativeCCW(pt2.getX(), pt2.getY(), pt.getX(), pt.getY(), p.getX(), p.getY());
/** * Compute the extension point where beam meets stem. * <p> * As for HeadStemRelation, the extension point is the <b>last</b> point where stem meets beam * when going along stem from head to beam. * * @param beam the provided beam * @param stem the provided stem * @return the corresponding extension point */ public static Point2D computeExtensionPoint (AbstractBeamInter beam, StemInter stem) { // Determine if stem is above or below the beam, to choose proper beam border // If stem is below the beam, we choose the top border of beam. Line2D stemMedian = stem.getMedian(); Point2D stemMiddle = PointUtil.middle(stemMedian); int above = beam.getMedian().relativeCCW(stemMiddle); Line2D beamBorder = beam.getBorder((above < 0) ? TOP : BOTTOM); return LineUtil.intersection(stemMedian, beamBorder); }
int lineRelativeToCandidate1 = Line2D.relativeCCW(line.getX1(), line.getY1(), line. getX2(), line.getY2(), candidate.getX1(), candidate.getY1()); int lineRelativeToCandidate2 = Line2D.relativeCCW(line.getX1(), line.getY1(), line. getX2(), line.getY2(), candidate.getX2(), candidate.getY2()); int candidateRelativeToLine1 = Line2D.relativeCCW(candidate.getX1(), candidate.getY1(), candidate.getX2(), candidate.getY2(), line.getX1(), line.getY1()); int candidateRelativeToLine2 = Line2D.relativeCCW(candidate.getX1(), candidate.getY1(), candidate.getX2(), candidate.getY2(), line.getX2(), line.getY2());
int ccw = Line2D.relativeCCW(0, 0, x, y, end2X, end2Y);
int ccw = Line2D.relativeCCW(0, 0, x, y, end2X, end2Y);
int direction = Line2D.relativeCCW(p0.getX(), p0.getY(), pe.getX(), pe.getY(), x, y);
int direction = Line2D.relativeCCW(p0.getX(), p0.getY(), pe.getX(), pe.getY(), x, y);