Переглянути джерело

Fix the planeNormal calculation

Scott Lahteine 10 роки тому
джерело
коміт
b76a352d41
1 змінених файлів з 6 додано та 4 видалено
  1. 6
    4
      Marlin/Marlin_main.cpp

+ 6
- 4
Marlin/Marlin_main.cpp Переглянути файл

@@ -1110,11 +1110,13 @@ static void set_bed_level_equation_3pts(float z_at_pt_1, float z_at_pt_2, float
1110 1110
     vector_3 pt1 = vector_3(ABL_PROBE_PT_1_X, ABL_PROBE_PT_1_Y, z_at_pt_1);
1111 1111
     vector_3 pt2 = vector_3(ABL_PROBE_PT_2_X, ABL_PROBE_PT_2_Y, z_at_pt_2);
1112 1112
     vector_3 pt3 = vector_3(ABL_PROBE_PT_3_X, ABL_PROBE_PT_3_Y, z_at_pt_3);
1113
+    vector_3 planeNormal = vector_3::cross(pt1 - pt2, pt3 - pt2).get_normal();
1113 1114
 
1114
-    vector_3 from_2_to_1 = (pt1 - pt2).get_normal();
1115
-    vector_3 from_2_to_3 = (pt3 - pt2).get_normal();
1116
-    vector_3 planeNormal = vector_3::cross(from_2_to_1, from_2_to_3).get_normal();
1117
-    planeNormal = vector_3(planeNormal.x, planeNormal.y, planeNormal.z);
1115
+    if (planeNormal.z < 0) {
1116
+      planeNormal.x = -planeNormal.x;
1117
+      planeNormal.y = -planeNormal.y;
1118
+      planeNormal.z = -planeNormal.z;
1119
+    }
1118 1120
 
1119 1121
     plan_bed_level_matrix = matrix_3x3::create_look_at(planeNormal);
1120 1122
 

Завантаження…
Відмінити
Зберегти