Package com.vividsolutions.jts.geom

Examples of com.vividsolutions.jts.geom.LineSegment


   * @return Edge that represents the line.
   *
   * @see GraphGenerator#get(Object)
   */
  public Graphable get(Object obj) {
    LineSegment line = (LineSegment)obj;
   
    //get nodes representing coordinate
    Node n1 = retrieveNode(line.p0);
    Node n2 = retrieveNode(line.p1);
   
View Full Code Here


   * @return Edge that represents the line.
   *
   * @see GraphGenerator#remove(Object)
   */
  public Graphable remove(Object obj) {
    LineSegment line = (LineSegment)obj;
    Node n1 = retrieveNode(line.p0);
    Node n2 = retrieveNode(line.p1);
   
    if (n1 == null || n2 == null) return(null);
   
View Full Code Here

   
    //not of equal slope, transform lines so that they are tail to tip and
    // use the cosine law to calculate angle between
   
    //transform line segments tail to tail, originating at (0,0)
    LineSegment tls1 = new LineSegment(
        new Coordinate(0,0), new Coordinate(l1.p1.x-l1.p0.x,l1.p1.y-l1.p0.y)
    );
    LineSegment tls2 = new LineSegment(
        new Coordinate(0,0), new Coordinate(l2.p1.x-l2.p0.x,l2.p1.y-l2.p0.y)
    );
   
    //line segment for third side of triangle
    LineSegment ls3 = new LineSegment(tls1.p1, tls2.p1);
   
    double c = ls3.getLength();
    double a = tls1.getLength();
    double b = tls2.getLength();
   
    return(
      Math.acos((a*a + b*b - c*c) / (2*a*b)) 
View Full Code Here

      Math.acos((a*a + b*b - c*c) / (2*a*b)) 
    );
  }
                                                                   
  public static double angleBetween(LineString l1, LineString l2, double tol) {
    LineSegment ls1 = new LineSegment(
      l1.getCoordinateN(l1.getNumPoints()-2),
      l1.getCoordinateN(l1.getNumPoints()-1)
    );
    LineSegment ls2 = new LineSegment(
      l2.getCoordinateN(0), l2.getCoordinateN(1)   
    );
   
    return(angleBetween(ls1,ls2, tol));
  }
View Full Code Here

    final Coordinate base = new Coordinate(0d,0d);
    final int n = 5;
   
    for (int i = 1; i <= n; i++) {
      Edge e = (Edge)generator().add(
        new LineSegment(
          new Coordinate(base.x + (i-1), base.y + (i-1)),
          new Coordinate(base.x + i, base.y + i)
        )
      );
    }
View Full Code Here

  public void test_1() {
    final Coordinate base = new Coordinate(0d,0d);
    final int n = 100;
    for (int i = 1; i <= n; i++) {
      Edge e = (Edge)generator().add(
        new LineSegment(
          new Coordinate(base.x + (i-1), base.y + (i-1)),
          new Coordinate(base.x + i, base.y + i)
        )
      )
    }
   
    //complete the circle
    generator().add(
      new LineSegment(new Coordinate(base.x + n, base.y + n), base)
    );
   
    generator().generate();
   
    Graph built = generator().getGraph();
View Full Code Here

  public void test_0() {
    final Coordinate base = new Coordinate(0d,0d);
    final int n = 100;
    for (int i = 1; i <= n; i++) {
      Edge e = (Edge)generator().add(
        new LineSegment(
          new Coordinate(base.x + (i-1), base.y + (i-1)),
          new Coordinate(base.x + i, base.y + i)
        )
      )
      e.setID(i-1);
      e.getNodeA().setID(i-1);
      e.getNodeB().setID(i);
    }
   
    Graph built = generator().getGraph();
   
    //ensure correct graph structure
    assertTrue(built.getEdges().size() == n);
    assertTrue(built.getNodes().size() == n+1);
   
    GraphVisitor visitor = new GraphVisitor() {
      public int visit(Graphable component) {
        DirectedNode node = (DirectedNode)component;
        Coordinate c = (Coordinate)node.getObject();
       
        if (node.getDegree() == 1) {
          assertTrue(
            (node.getID()==0&&node.getInDegree()==0&&node.getOutDegree()==1)||
            (node.getID()==n&&node.getInDegree()==1&&node.getOutDegree()==0)
          );
        }
        else {
          assertTrue(node.getInDegree() == 1 && node.getOutDegree() == 1);
        }
       
        assertTrue(
          c.x == base.x + node.getID() && c.y == base.y + node.getID()
        );
        return(0);
      }
    };
    built.visitNodes(visitor);
   
    //ensure correct edge direction
    visitor = new GraphVisitor() {
      public int visit(Graphable component) {
        DirectedEdge e = (DirectedEdge)component;
        Coordinate c0 = (Coordinate)e.getInNode().getObject();
        Coordinate c1 = (Coordinate)e.getOutNode().getObject();
        LineSegment ls = (LineSegment)e.getObject();
       
        assertTrue(ls.p0.equals(c0) && ls.p1.equals(c1));
       
        return(0);
      }
View Full Code Here

  public void test_1() {
    final Coordinate base = new Coordinate(0d,0d);
    final int n = 100;
    for (int i = 1; i <= n; i++) {
      Edge e = (Edge)generator().add(
        new LineSegment(
          new Coordinate(base.x + (i-1), base.y + (i-1)),
          new Coordinate(base.x + i, base.y + i)
        )
      )
      e.setID(i-1);
      e.getNodeA().setID(i-1);
      e.getNodeB().setID(i);
    }
   
    //complete the circle
    generator().add(
      new LineSegment(new Coordinate(base.x + n, base.y + n), base)
    );
   
    Graph built = generator().getGraph();
   
    assertTrue(built.getEdges().size() == n+1);
View Full Code Here

  public void test_0() {
    final Coordinate base = new Coordinate(0d,0d);
    final int n = 100;
    for (int i = 1; i <= n; i++) {
      Edge e = (Edge)generator().add(
        new LineSegment(
          new Coordinate(base.x + (i-1), base.y + (i-1)),
          new Coordinate(base.x + i, base.y + i)
        )
      )
      e.setID(i-1);
      e.getNodeA().setID(i-1);
      e.getNodeB().setID(i);
    }
   
    Graph built = generator().getGraph();
   
    //ensure correct graph structure
    assertTrue(built.getEdges().size() == n);
    assertTrue(built.getNodes().size() == n+1);
   
    GraphVisitor visitor = new GraphVisitor() {
      public int visit(Graphable component) {
        Node node = (Node)component;
        Coordinate c = (Coordinate)node.getObject();
       
        if (node.getDegree() == 1) {
          assertTrue(node.getID() == 0 || node.getID() == n);
        }
        else {
          assertTrue(node.getDegree() == 2);
        }
       
        assertTrue(
          c.x == base.x + node.getID() && c.y == base.y + node.getID()
        );
        return(0);
      }
    };
    built.visitNodes(visitor);
   
    visitor = new GraphVisitor() {
      public int visit(Graphable component) {
        Edge edge = (Edge)component;
        LineSegment line = (LineSegment)edge.getObject();
       
        assertTrue(line.p1.x == line.p0.x + 1 && line.p1.y == line.p0.y+1);
       
        return(0);
      }
View Full Code Here

  public void test_1() {
    final Coordinate base = new Coordinate(0d,0d);
    final int n = 100;
    for (int i = 1; i <= n; i++) {
      Edge e = (Edge)generator().add(
        new LineSegment(
          new Coordinate(base.x + (i-1), base.y + (i-1)),
          new Coordinate(base.x + i, base.y + i)
        )
      )
      e.setID(i-1);
      e.getNodeA().setID(i-1);
      e.getNodeB().setID(i);
    }
   
    //complete the circle
    generator().add(
      new LineSegment(new Coordinate(base.x + n, base.y + n), base)
    );
   
    Graph built = generator().getGraph();
   
    assertTrue(built.getEdges().size() == n+1);
View Full Code Here

TOP

Related Classes of com.vividsolutions.jts.geom.LineSegment

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.