Przeglądaj źródła

change tool_xodrobj. fix mnfac calculation.

yuchuli 3 lat temu
rodzic
commit
1ee933b1c7
1 zmienionych plików z 14 dodań i 2 usunięć
  1. 14 2
      src/tool/tool_xodrobj/mainwindow.cpp

+ 14 - 2
src/tool/tool_xodrobj/mainwindow.cpp

@@ -134,8 +134,20 @@ static int getmnfac(OpenDrive & mxodr,double & fmovex,double & fmovey)
         fmovey = (fymax + fymin)/2.0;
         fmovey = (fymax + fymin)/2.0;
     }
     }
 
 
-    int nfacx = (VIEW_WIDTH/2)/(fxmax*1.2);
-    int nfacy = (VIEW_HEIGHT/2)/(fymax*1.2);
+    double fabsxmax = fabs(fxmax);
+    if(fabsxmax < fabs(fxmin))fabsxmax = fabs(fxmin);
+    double fabsymax = fabs(fymax);
+    if(fabsymax < fabs(fymin))fabsymax = fabs(fymin);
+    int nfacx=1;
+    if(fabsxmax!= 0)
+    {
+        nfacx = (VIEW_WIDTH/2)/(fabsxmax*1.2);
+    }
+    int nfacy = 1;
+    if(fabsymax != 0)
+    {
+        nfacy = (VIEW_HEIGHT/2)/(fabsymax*1.2);
+    }
     if(nfacx<1)nfacx = 1;
     if(nfacx<1)nfacx = 1;
     if(nfacy<1)nfacy = 1;
     if(nfacy<1)nfacy = 1;