chiark / gitweb /
get rim twist right
[moebius2.git] / energy.c
index 448fefaa56d3536ef2dfacd2aea6f043cbdb5395..aa2dd47fa4364eed4fc5c616ca2336ba9573eee9 100644 (file)
--- a/energy.c
+++ b/energy.c
@@ -53,7 +53,7 @@ static const CostContribution costs[]= {
 #define STOP_EPSILON 5e-3
     COST(  3e4,   vertex_displacement_cost) // NB this is probably wrong now
     COST(  3e4,   vertex_edgewise_displ_cost) // we have changed the power
-    COST( 0.2e3,  rim_proximity_cost)
+    COST( 2e2,  rim_proximity_cost)
     COST( 1e4,  rim_twist_cost)
     COST(  1e12,   noncircular_rim_cost)
     COST(  10e1,   nonequilateral_triangles_cost)
@@ -63,7 +63,7 @@ static const CostContribution costs[]= {
 #endif
 
 #if XBITS==5
-#define STOP_EPSILON 1e-5
+#define STOP_EPSILON 7e-4
     COST(  3e4,   vertex_displacement_cost)
     COST(  3e4,   vertex_edgewise_displ_cost)
     COST(  2e-1,  rim_proximity_cost)
@@ -77,10 +77,10 @@ static const CostContribution costs[]= {
 
 #if XBITS==6
 #define STOP_EPSILON 1.2e-4
-    COST(  3e3,   vertex_displacement_cost)
-    COST(  3e3,   vertex_edgewise_displ_cost)
-    COST( 0.02e0,  rim_proximity_cost)
-    COST(  1e4,  rim_twist_cost)
+    COST(  3e4,   vertex_displacement_cost)
+    COST(  3e4,   vertex_edgewise_displ_cost)
+    COST( 2e-1,  rim_proximity_cost)
+    COST(  1e3,  rim_twist_cost)
     COST(  1e12,   noncircular_rim_cost)
     COST(  10e1,   nonequilateral_triangles_cost)
 //    COST(  1e1,   small_triangles_cost)
@@ -516,7 +516,7 @@ void compute_rim_twist_angles(const Vertices vertices, int section) {
     /* we are interested in the angle subtended at the rim, from the
      * rim's point of view. */
     K distance[k]= vertices[v][k] - oncircle[k];
-    double distance_positive_z= distance[3];
+    double distance_positive_z= distance[2];
     double distance_radial_outwards= dotprod(distance, oncircle);
     rim_vertex_angles[v]= atan2(distance_positive_z, distance_radial_outwards);
   }