[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [2103] trunk/py/scripts/addons/modules/ curve_utils.py: edit for solving bezier:

Campbell Barton ideasman42 at gmail.com
Wed Jul 6 19:32:04 CEST 2011


Revision: 2103
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=2103
Author:   campbellbarton
Date:     2011-07-06 17:32:03 +0000 (Wed, 06 Jul 2011)
Log Message:
-----------
edit for solving bezier:
replace intersection paint with simplified angle comparison.

Modified Paths:
--------------
    trunk/py/scripts/addons/modules/curve_utils.py

Modified: trunk/py/scripts/addons/modules/curve_utils.py
===================================================================
--- trunk/py/scripts/addons/modules/curve_utils.py	2011-07-06 17:08:23 UTC (rev 2102)
+++ trunk/py/scripts/addons/modules/curve_utils.py	2011-07-06 17:32:03 UTC (rev 2103)
@@ -474,19 +474,16 @@
 
             from math import pi
             # This could be tweaked but seems to work well
-            fac_fac = (p1.co - p2.co).length * p1.no.angle(l2_no_ref) / (pi * 1.0)
+            fac_fac = (p1.no.angle(l2_no_ref) / pi)
 
-            fac_1 = intersect_point_line(p2_apex_co,
-                                         p1.co,
-                                         p1.co + l1_tan,
-                                         )[1] * fac_fac
-            fac_2 = intersect_point_line(p1_apex_co,
-                                         p2.co,
-                                         p2.co + l2_tan,
-                                         )[1] * fac_fac
+            fac_1 = p1.no.angle(line_ix_p1_co - p1.co) / pi
+            fac_2 = (-p2.no).angle(line_ix_p2_co - p2.co) / pi
 
-            h1_fac = ((p1.co - p1_apex_co).length / 0.75) - fac_1
-            h2_fac = ((p2.co - p2_apex_co).length / 0.75) - fac_2
+            # fac_1 = fac_2 = 0.0
+            print(fac_1, fac_2)
+            # why * 3 ? - it just gives best results
+            h1_fac = ((p1.co - p1_apex_co).length / 0.75) * (1.0 + fac_1 * fac_fac * 3.0)
+            h2_fac = ((p2.co - p2_apex_co).length / 0.75) * (1.0 + fac_2 * fac_fac * 3.0)
 
             h1 = p1.co + (p1.no * h1_fac)
             h2 = p2.co - (p2.no * h2_fac)
@@ -765,11 +762,12 @@
                             recursive=True,
                             )
 
-    '''
+    
+    error = 0.0
     for s in curve.splines:
-        s.bezier_solve()
-        print(s.bezier_error())
-    '''
+        error += s.bezier_error()
+    print("%d :: %.6f" % (len(curve.splines), error))
+
     # VISUALIZE
     # curve.to_blend_data()
     curve.to_blend_curve()



More information about the Bf-extensions-cvs mailing list