average curvature and isolated bend
This commit is contained in:
parent
efa34c0fa5
commit
46acc0dc83
@ -503,10 +503,22 @@ find out similar ones.
|
|||||||
|
|
||||||
\subsection{Isolated Bend}
|
\subsection{Isolated Bend}
|
||||||
|
|
||||||
Bend itself and its extensions can be described by \textsc{average curvature},
|
Bend itself and its "isolation" can be described by \textsc{average curvature},
|
||||||
which is \textcquote{wang1998line}{geometrically defined as the ratio of
|
which is \textcquote{wang1998line}{geometrically defined as the ratio of
|
||||||
inflection over the length of a curve.}
|
inflection over the length of a curve.}
|
||||||
|
|
||||||
|
Two conditions must be true to claim that a bend is isolated:
|
||||||
|
|
||||||
|
\begin{enumerate}
|
||||||
|
\item \textsc{average curvature} of neighboring bends, should be larger
|
||||||
|
than the "candidate" bend's curvature; this implementation arbitrarily
|
||||||
|
chose $\isolationThreshold$.
|
||||||
|
|
||||||
|
\item Bends on both sides of the "candidate" should be longer than a
|
||||||
|
certain value. This implementation does not (yet) define such a
|
||||||
|
constraint and will only follow the average curvature constraint above.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
\subsection{The Context of a Bend: Isolated and Similar Bends}
|
\subsection{The Context of a Bend: Isolated and Similar Bends}
|
||||||
|
|
||||||
To find out whether two bends are similar, they are compared by 3 components:
|
To find out whether two bends are similar, they are compared by 3 components:
|
||||||
@ -527,7 +539,7 @@ $q$:
|
|||||||
(baseline_p-baseline_q)^2}
|
(baseline_p-baseline_q)^2}
|
||||||
\]
|
\]
|
||||||
|
|
||||||
The smaller the distance $d$, the more similar the bends are.
|
The more similar the bends are, the smaller the distance $d$.
|
||||||
|
|
||||||
\subsection{Elimination Operator}
|
\subsection{Elimination Operator}
|
||||||
|
|
||||||
|
17
IV/vars.awk
17
IV/vars.awk
@ -1,18 +1,21 @@
|
|||||||
#!/usr/bin/awk -f
|
#!/usr/bin/awk -f
|
||||||
|
|
||||||
BEGIN { FS="[() ]" }
|
BEGIN { FS="[(); ]" }
|
||||||
|
|
||||||
/small_angle constant real default radians/ {
|
/small_angle constant real default radians/ {
|
||||||
if(d) {
|
x1 += 1;
|
||||||
exit 1
|
d1 = sprintf("\\newcommand{\\smallAngle}{\\frac{\\pi}{%d}}",180/$8);
|
||||||
} else {
|
|
||||||
d = sprintf("\\newcommand{\\smallAngle}{\\frac{\\pi}{%d}}\n",180/$8);
|
|
||||||
}
|
}
|
||||||
|
/isolation_threshold constant real default / {
|
||||||
|
x2 += 1;
|
||||||
|
d2 = sprintf("\\newcommand{\\isolationThreshold}{%.2f}",$7);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
END{
|
END{
|
||||||
if(d) {
|
if(x1 == 1 && x2 == 1) {
|
||||||
print d > "vars.inc.tex"
|
print d1 > "vars.inc.tex"
|
||||||
|
print d2 >> "vars.inc.tex"
|
||||||
} else {
|
} else {
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user