public void calculateArea() { Point2d forwardVector = new Point2d(nextVertexData.position); forwardVector.sub(position); Point2d backwardsVector = new Point2d(previousVertexData.position); backwardsVector.sub(position); area = Math.abs(forwardVector.getX() * backwardsVector.getY() - forwardVector.getY() * backwardsVector.getX()); } }
/** * Scale this convex polygon about pointToScaleAbout. * @param scaleFactor */ public void scale(Point2d pointToScaleAbout, double scaleFactor) { checkIfUpToDate(); for (int i = 0; i < numberOfVertices; i++) { Point2d vertex = getVertexUnsafe(i); vertex.sub(pointToScaleAbout); vertex.scale(scaleFactor); vertex.add(pointToScaleAbout); } update(); }
Point2d vertexC = new Point2d(vertexB); vertexB.add(normal); vertexC.sub(normal); if (wedge.type == WedgeLineElement.TYPE.DASHED) { this.drawDashedWedge(vertexA, vertexB, vertexC);
private static double calcDistance(Point2d pIntersect, LineSegment2d edgeLine) { Vector2d edge = new Vector2d(edgeLine.getEnd()); edge.sub(edgeLine.getBegin()); Point2d intersect = new Point2d(pIntersect); intersect.sub(edgeLine.getBegin()); Vector2d pointOnVector = Algebra.orthogonalProjection(edge, intersect); return Tuple2dUtil.distance(intersect, pointOnVector); }
public void visit(WedgeLineElement wedge) { // make the vector normal to the wedge axis Vector2d normal = new Vector2d(wedge.firstPointY - wedge.secondPointY, wedge.secondPointX - wedge.firstPointX); normal.normalize(); normal.scale(rendererModel.getWedgeWidth() / rendererModel.getScale()); // make the triangle corners Point2d vertexA = new Point2d(wedge.firstPointX, wedge.firstPointY); Point2d vertexB = new Point2d(wedge.secondPointX, wedge.secondPointY); Point2d vertexC = new Point2d(vertexB); vertexB.add(normal); vertexC.sub(normal); this.g.setColor(wedge.color); if (wedge.type == WedgeLineElement.TYPE.DASHED) { this.drawDashedWedge(vertexA, vertexB, vertexC); } else if(wedge.type == WedgeLineElement.TYPE.WEDGED){ this.drawFilledWedge(vertexA, vertexB, vertexC); } else { this.drawCrissCrossWedge(vertexA, vertexB, vertexC); } }
logger.debug("Random variable: " + choice + ", displacing first atom"); } else { a1.getPoint2d().sub(v2); logger.debug("Random variable: " + choice + ", displacing second atom");
logger.debug("Random variable: " + choice + ", displacing first atom"); } else { a1.getPoint2d().sub(v2); logger.debug("Random variable: " + choice + ", displacing second atom");
private void visit(WedgeLineElement wedge) { // make the vector normal to the wedge axis Vector2d normal = new Vector2d(wedge.firstPointY - wedge.secondPointY, wedge.secondPointX - wedge.firstPointX); normal.normalize(); normal.scale(rendererModel.getParameter(WedgeWidth.class).getValue() / rendererModel.getParameter(Scale.class).getValue()); // make the triangle corners Point2d vertexA = new Point2d(wedge.firstPointX, wedge.firstPointY); Point2d vertexB = new Point2d(wedge.secondPointX, wedge.secondPointY); Point2d vertexC = new Point2d(vertexB); vertexB.add(normal); vertexC.sub(normal); this.graphics.setColor(wedge.color); if (wedge.type == WedgeLineElement.TYPE.DASHED) { this.drawDashedWedge(vertexA, vertexB, vertexC); } else if (wedge.type == WedgeLineElement.TYPE.WEDGED) { this.drawFilledWedge(vertexA, vertexB, vertexC); } else if (wedge.type == WedgeLineElement.TYPE.INDIFF) { this.drawIndiffWedge(vertexA, vertexB, vertexC); } }
IAtom toleave = chemModelRelay.getRenderer().getRenderer2DModel().getMerge().keySet().iterator().next(); IAtom toshift = (IAtom)chemModelRelay.getRenderer().getRenderer2DModel().getMerge().get(chemModelRelay.getRenderer().getRenderer2DModel().getMerge().keySet().iterator().next()).clone(); toleave.getPoint2d().sub(toshift.getPoint2d()); Point2d pointSub = new Point2d(toleave.getPoint2d().x, toleave.getPoint2d().y); for(IAtom atom: newRing.atoms()){ atom.getPoint2d().sub(pointSub);
point.sub(pointToRotateAbout); DenseMatrix64F V = new DenseMatrix64F(new double[][] {{1.0, 0.0, -point.y}, {0.0, 1.0, point.x}});