2021-05-19 22:57:45 +03:00
|
|
|
Definition of a bend
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
Ends of the line should always be bends, otherwise not
|
2021-05-19 22:57:45 +03:00
|
|
|
all line vertices are covered by bends (definition elsewhere).
|
|
|
|
|
2021-05-19 22:57:45 +03:00
|
|
|
Gentle inflection at the end of the bend
|
|
|
|
----------------------------------------
|
|
|
|
|
|
|
|
The article does not specify how many vertices should be included when
|
|
|
|
calculating the end-of-bend inflection. We chose the iterative approach -- as
|
|
|
|
long as the angle is "right" and the distance is (greedily) decreasing, keep
|
|
|
|
going.
|
|
|
|
|
|
|
|
Self-line crossing when cutting a bend
|
|
|
|
--------------------------------------
|
2021-05-19 22:57:45 +03:00
|
|
|
|
2021-05-19 22:57:45 +03:00
|
|
|
The self-line-crossing may happen after a few bends have been skipped. E.g.
|
|
|
|
ends of A<->B cross the line, but "swallow" a few more in between:
|
2021-05-19 22:57:45 +03:00
|
|
|
|
2021-05-19 22:57:45 +03:00
|
|
|
,______
|
|
|
|
/ \
|
|
|
|
|___A | \ \
|
|
|
|
\ | B\ | __
|
|
|
|
\ | | | / \
|
|
|
|
/ | | |___,---,___/A |
|
|
|
|
/ | \_________________|
|
|
|
|
\ |
|
|
|
|
\ | \ \
|
|
|
|
/ / B\ | _ __
|
|
|
|
----/ / | | / \ / \
|
|
|
|
/ ,____/ | |___/ \___/A |
|
|
|
|
/ B| \_________________|
|
|
|
|
|
|
2021-05-19 22:57:45 +03:00
|
|
|
|
2021-05-19 22:57:45 +03:00
|
|
|
|
|
|
|
|
2021-05-19 22:57:45 +03:00
|
|
|
If a bend with 180+ deg sum of inflection angles is found, its line between
|
|
|
|
inflection angles (AB in our examples) must be crossed with all the other bends
|
|
|
|
to detect a possible line-crossing. This is O(N*M), where N is the total number
|
|
|
|
of line segments, and M is the number of qualifying bends. It is expensive.
|
2021-05-19 22:57:45 +03:00
|
|
|
|
2021-05-19 22:57:45 +03:00
|
|
|
Also, there is another way to remove self-crossing, without removing most of
|
|
|
|
the bend. E.g. from:
|
|
|
|
|
2021-05-19 22:57:45 +03:00
|
|
|
\ /
|
2021-05-19 22:57:45 +03:00
|
|
|
B\ | __
|
|
|
|
| | / \
|
|
|
|
| |____/A |
|
|
|
|
\__________|
|
2021-05-19 22:57:45 +03:00
|
|
|
|
2021-05-19 22:57:45 +03:00
|
|
|
Instead of:
|
|
|
|
|
|
|
|
\ /
|
|
|
|
\/ A'
|
|
|
|
B
|
|
|
|
|
2021-05-19 22:57:45 +03:00
|
|
|
To:
|
|
|
|
|
2021-05-19 22:57:45 +03:00
|
|
|
\ \_
|
|
|
|
B\ `-,_.__
|
|
|
|
| A' \
|
|
|
|
| |
|
|
|
|
\__________|
|
2021-05-19 22:57:45 +03:00
|
|
|
|
|
|
|
But perhaps it doesn't look quite as natural. I will trust the original
|
2021-05-19 22:57:46 +03:00
|
|
|
article to do the right thing here and remove the bend altogether.
|
2021-05-19 22:57:46 +03:00
|
|
|
|
|
|
|
The Context of a Bend
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
Similar bends:
|
|
|
|
|
|
|
|
> For example, if bend 1 has four unit areas and bend 2 has six unit areas, the
|
|
|
|
> average size is five units, and the normalized areas of bends 1 and 2 are
|
|
|
|
> 4/5=0.8 and 6/5=1.2, respectively.
|
|
|
|
|
|
|
|
My comment: everything until this sentence is clear. However, "unit areas" is
|
|
|
|
misleading: there is little reason to normalize areas, but leave the distances
|
|
|
|
intact (if we'd like to normalize areas, it would make sense to square-root
|
|
|
|
them).
|
|
|
|
|
|
|
|
Removing that removes changes the meaning of the sentence that **euclidean
|
|
|
|
distance** is normalized (the composite of the bend properties), rather than
|
|
|
|
a single component.
|