Image-Bitmap2Paths
view release on metacpan or search on metacpan
lib/Image/Bitmap2Paths.pm view on Meta::CPAN
# (To avoid the trivial step [which is tricky] we ensure that we call recursively, there are at least two squares.
# This means at least two green intervals on the previous stage.)
# Provided that this case is handled in the caller, the additional green lines appear when the length of the start/end rectangle
# is s+1; if it is above s+1, this is an impossible situation.
# In particular, every case is reduced to a âunique solutionâ one, or the âtrivialâ one. The last one is equivalent to
# having 3 equidistant paralle lines with an an interval [AB] on the middle one (the preimage [AB] of the last red line), and
# opposite to each other rays XA' and YB' on the other two lines. The fitting line must intersect all 3 of them.
# Oone of ray may be the whole line). It is easy to see that this is equivalent to the line intersecting intervals [XA], [AB]
# and [BY]. If the quadrilateral XAYB is not convex, it may be decreased (so that X,A,B,Y are 3 vertices of a â³, and a point
# on a side. If it is convex, then intersecting [AB] is a corollary of other two. ???
# Possibly unknown squares: the 2nd and 3rd row âshareâ a x-coordinate; assume that intersecting a red line in any of them is OK.
# â¡ This is equivalent to having the red line of double length, which is equivalent to
# â¡â¡â¡ the green line of double length at this position (assuming it is not at edge).
# â¡â¡â¡â¡ Hence this allows the induction step as well.
# â¡â¡â¡â¡â¡ (Encode ignoring the extra square at second line, with second line marked as: $extended->{1}=1.)
# â¡â¡
# Returns empty or a,b,db of the line y=ax+b-db which rasterizes to the rectangles of widths @$CC (connected UR â LL corners);
# The other two arguments as as above. LL corner of the leftmost of bottom squares is at 0,0.
( run in 0.544 second using v1.01-cache-2.11-cpan-e1769b4cff6 )