[ 
https://issues.apache.org/jira/browse/MATH-1450?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16363302#comment-16363302
 ] 

Matt Juntunen commented on MATH-1450:
-------------------------------------

I have the extra tests for this ready to go on my MATH-1437 branch. Would it be 
better to submit a single pull request for both of these together?

> PolygonsSet sets incorrect value for last vertex in open loops
> --------------------------------------------------------------
>
>                 Key: MATH-1450
>                 URL: https://issues.apache.org/jira/browse/MATH-1450
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 4.0, 3.5, 3.6
>            Reporter: Matt Juntunen
>            Priority: Major
>             Fix For: 4.0
>
>
> According to the documentation, for open infinite vertex loops returned by 
> the PolygonsSet.getVertices() method, the last two points can be used to 
> determine the direction of the last edge in the loop. However, the current 
> code returns a point from the second-to-last edge. For example, the code 
> below builds a box open on the top. It currently returns the vertex loop 
> [null, \{0; 1}, \{0; 0}, \{1; 0}, \{1; 0}], where the last two vertices are 
> the same point and cannot be used to determine the direction of the last 
> edge. The returned vertex loop should be [null, \{0; 1}, \{0; 0}, \{1; 0}, 
> \{1; 1}].
> {code:java}
> Cartesian2D v0 = new Cartesian2D(0, 1);
>         Cartesian2D v1 = new Cartesian2D(0, 0);
>         Cartesian2D v2 = new Cartesian2D(1, 0);
>         Cartesian2D v3 = new Cartesian2D(1, 1);
>         Line left = new Line(v0, v1, 1e-10);
>         Line bottom = new Line(v1, v2, 1e-10);
>         Line right = new Line(v2, v3, 1e-10);
>         List<SubHyperplane<Euclidean2D>> boundaries = new ArrayList<>();
>         boundaries.add(new SubLine(left, new 
> IntervalsSet(left.toSubSpace(v0).getX(), left.toSubSpace(v1).getX(), 1e-10)));
>         boundaries.add(new SubLine(bottom, new 
> IntervalsSet(bottom.toSubSpace(v1).getX(), bottom.toSubSpace(v2).getX(), 
> 1e-10)));
>         boundaries.add(new SubLine(right, new 
> IntervalsSet(right.toSubSpace(v2).getX(), right.toSubSpace(v3).getX(), 
> 1e-10)));
>         PolygonsSet polygon = new PolygonsSet(boundaries, 1e-10);
>         polygon.getVertices();{code}
>       
>  
> Pull Request: [https://github.com/apache/commons-math/pull/81]



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to