Changeset 10001 in josm for trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
- Timestamp:
- 2016-03-17T01:50:12+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
r9968 r10001 999 999 Iterator<Pair<Node, Node>> i = segs.iterator(); 1000 1000 Pair<Node, Node> seg = i.next(); 1001 EastNorth A = seg.a.getEastNorth();1002 EastNorth B = seg.b.getEastNorth();1001 EastNorth pA = seg.a.getEastNorth(); 1002 EastNorth pB = seg.b.getEastNorth(); 1003 1003 seg = i.next(); 1004 EastNorth C = seg.a.getEastNorth();1005 EastNorth D = seg.b.getEastNorth();1006 1007 double u = det( B.east() - A.east(), B.north() - A.north(), C.east() - D.east(), C.north() -D.north());1004 EastNorth pC = seg.a.getEastNorth(); 1005 EastNorth pD = seg.b.getEastNorth(); 1006 1007 double u = det(pB.east() - pA.east(), pB.north() - pA.north(), pC.east() - pD.east(), pC.north() - pD.north()); 1008 1008 1009 1009 // Check for parallel segments and do nothing if they are … … 1017 1017 // if the segment is scaled to lenght 1 1018 1018 1019 double q = det( B.north() - C.north(), B.east() - C.east(), D.north() - C.north(), D.east() -C.east()) / u;1019 double q = det(pB.north() - pC.north(), pB.east() - pC.east(), pD.north() - pC.north(), pD.east() - pC.east()) / u; 1020 1020 EastNorth intersection = new EastNorth( 1021 B.east() + q * (A.east() -B.east()),1022 B.north() + q * (A.north() -B.north()));1021 pB.east() + q * (pA.east() - pB.east()), 1022 pB.north() + q * (pA.north() - pB.north())); 1023 1023 1024 1024 … … 1031 1031 } 1032 1032 default: 1033 EastNorth P= n.getEastNorth();1033 EastNorth p = n.getEastNorth(); 1034 1034 seg = segs.iterator().next(); 1035 A = seg.a.getEastNorth();1036 B = seg.b.getEastNorth();1037 double a = P.distanceSq(B);1038 double b = P.distanceSq(A);1039 double c = A.distanceSq(B);1035 pA = seg.a.getEastNorth(); 1036 pB = seg.b.getEastNorth(); 1037 double a = p.distanceSq(pB); 1038 double b = p.distanceSq(pA); 1039 double c = pA.distanceSq(pB); 1040 1040 q = (a - b + c) / (2*c); 1041 n.setEastNorth(new EastNorth( B.east() + q * (A.east() - B.east()), B.north() + q * (A.north() -B.north())));1041 n.setEastNorth(new EastNorth(pB.east() + q * (pA.east() - pB.east()), pB.north() + q * (pA.north() - pB.north()))); 1042 1042 } 1043 1043 }
Note:
See TracChangeset
for help on using the changeset viewer.