RFR: 8176501: Method Shape.getBounds2D() incorrectly includes Bezier control points in bounding box [v2]

Laurent Bourgès lbourges at openjdk.java.net
Thu Nov 11 10:29:42 UTC 2021


On Thu, 11 Nov 2021 10:18:29 GMT, Laurent Bourgès <lbourges at openjdk.org> wrote:

>> I attempted to explore a numerical approach to pad the bounding box here 4b9d87d6d03e923bb2663fc8f4f77b7549df6e70 ... but I don't like the results so far. Any suggestions? (Or if you have a better approach in mind we can discard that entire class...)
>
> You made an amazing job !
> Your bigdecimal impl looks good.
> I will play with your test experiment... asap.
> I think numerical accuracies are related to the dynamic /magnitude of values: points.
> The test should evaluate(max error) depending on the quick length(curve) ~ manhattan norm(curve arms), so small curves have less numerical error whereas huge curve (10^50 length) means points are wide spread and coeffs... solver...points are less accurate.
> 
> I will try making sampled control points vary in log scale: 10^-6 to 10^38 (float max) so curve length will vary in huge range and determine the histogram of max(error) / length ratio.

see condition number = magnitude range on such plot:
https://github.com/JuliaMath/AccurateArithmetic.jl/blob/master/test/figs/sum_accuracy.svg

-------------

PR: https://git.openjdk.java.net/jdk/pull/6227



More information about the client-libs-dev mailing list