Code

make tolerance range exponential
authorbuliabyak <buliabyak@users.sourceforge.net>
Tue, 15 Jul 2008 07:13:00 +0000 (07:13 +0000)
committerbuliabyak <buliabyak@users.sourceforge.net>
Tue, 15 Jul 2008 07:13:00 +0000 (07:13 +0000)
src/pencil-context.cpp

index 20d1c113da83d67a5540b7223c09e5ff5bfa1033..397a5a0ffb0d7cb52f3f6c51b58424c782c5d762 100644 (file)
@@ -626,9 +626,9 @@ fit_and_split(SPPencilContext *pc)
 {
     g_assert( pc->npoints > 1 );
 
-    double const tolerance_sq = 0.02 * square( NR::expansion(pc->desktop->w2d())
-                                        * prefs_get_double_attribute_limited("tools.freehand.pencil",
-                                                                   "tolerance", 10.0, 1.0, 100.0) );
+    double const tol = prefs_get_double_attribute_limited("tools.freehand.pencil",                                                                             "tolerance", 10.0, 1.0, 100.0);
+    double const tolerance_sq = 0.02 * square( NR::expansion(pc->desktop->w2d()) * tol) 
+        * exp(0.2*tol - 2);
 
     NR::Point b[4];
     g_assert(is_zero(pc->req_tangent)