java - Error when iterating arraylist with points of lines to check for intersection -
i'm developing code check intersection between lines. have points of lines stored in arraylist , below have code iterati throw arraylist compare 2 lines @ time. error message line: line line2 = new line(points.get(j), points.get(j+1));
it's j+1
causes error. if have j
it's no problem, don't next point!? can't or have been thinking wrong in way? preciated locate error or suggestion alternative solution.
// intersection control if(touchactionup) { (int = 0; < points.size()-3; i++) { line line1 = new line(points.get(i), points.get(i+1)); (int j = + 2; j < points.size(); j++) { line line2 = new line(points.get(j), points.get(j+1)); // call method check intersection if(checkintersection(line1, line2)) { } } } }
yes, problem:
for (int j = + 2; j < points.size(); j++) { line line2 = new line(points.get(j), points.get(j+1));
that keep incrementing until and including j = points.size() - 1
@ point calling points.get(j+1)
calling points.get(points.size())
invalid index.
you want smaller lower bound:
for (int j = + 2; j < points.size() - 1; j++) {
it looks me you're not using list of points correctly though - if you're trying use pairs of points in list, i++
, j++
should i += 2
, j += 2
- otherwise you're going create lines points indexes of (0, 1), (1, 2), (2, 3) etc. maybe that's intention - if these meant lines describing single shape, example... if it's not, i'd encourage create list<line>
instead, each line
has pair of points. simpler work with.
Comments
Post a Comment