|
@@ -1,7 +1,7 @@
|
|
|
#include <algorithm>
|
|
|
#include <math.h>
|
|
|
#include "line_fit.h"
|
|
|
-
|
|
|
+#include "line.h"
|
|
|
fit_item::fit_item()
|
|
|
:x(0)
|
|
|
,y(0)
|
|
@@ -241,4 +241,118 @@ bool card_fit::fit()
|
|
|
|
|
|
return true;
|
|
|
}
|
|
|
+#ifdef _LINE_FIT_TEST
|
|
|
+#include "line_fit.h"
|
|
|
+int a(int x)
|
|
|
+{
|
|
|
+ return x*2+1;
|
|
|
+}
|
|
|
+double y(int x)
|
|
|
+{
|
|
|
+ return 0.25*x+13.2;
|
|
|
+}
|
|
|
+int main()
|
|
|
+{
|
|
|
+ fit_batch f;
|
|
|
+ f.add_tool(100,5);
|
|
|
+ //y=2x+1;
|
|
|
+ //f.add(30,a(30));
|
|
|
+ for(int i=0;i<15;i++)
|
|
|
+ {
|
|
|
+ f.add(i*10,a(i*10));
|
|
|
+ }
|
|
|
+ f.add(20,45);
|
|
|
+ f.log();
|
|
|
+ f.reset_data();
|
|
|
+ f.add(20,45);
|
|
|
+ for(int i=14;i>=0;i--)
|
|
|
+ f.add(i,a(i));
|
|
|
+ f.log();
|
|
|
+ printf("%f",f[0].testk(30,a(30)+20));
|
|
|
+ f.reset_data();
|
|
|
+ f.add(6721.744000,1273.000000);
|
|
|
+ f.add(6721.742000,1273.000000);
|
|
|
+ f.log();
|
|
|
+ f.add(6721.592000,1273.000000);
|
|
|
+ f.add(6721.545000,1273.000000);
|
|
|
+ f.add(6721.259000,1273.000000);
|
|
|
+ f.add(6721.395000,1273.000000);
|
|
|
+ f.add(6721.378000,1273.000000);
|
|
|
+ f.add(6721.081000,1273.000000);
|
|
|
+ f.add(6721.043000,1273.000000);
|
|
|
+ f.add(6720.991000,1273.000000);
|
|
|
+ f.add(6720.485000,1273.000000);
|
|
|
+ f.add(6720.633000,1273.000000);
|
|
|
+ f.add(6720.562000,1273.000000);
|
|
|
+ f.add(6720.443000,1273.000000);
|
|
|
+ f.add(6720.145000,1273.000000);
|
|
|
+ f.add(6719.575000,1273.000000);
|
|
|
+ f.add(6710.775000,1273.000000);
|
|
|
+ f.add(6710.384000,1273.000000);
|
|
|
+ f.add(6710.030000,1273.000000);
|
|
|
+ f.add(6709.847000,1273.000000);
|
|
|
+ f.add(6710.098000,1273.000000);
|
|
|
+ f.add(6706.457000,1273.000000);
|
|
|
+ f.add(6706.419000,1273.000000);
|
|
|
+ f.add(6706.608000,1273.000000);
|
|
|
+ f.add(6706.513000,1273.000000);
|
|
|
+ f.add(6706.438000,1273.000000);
|
|
|
+ f.add(6706.239000,1273.000000);
|
|
|
+ f.add(6706.048000,1273.000000);
|
|
|
+ f.add(6705.962000,1273.000000);
|
|
|
+ f.add(6705.707000,1273.000000);
|
|
|
+ f.add(6705.839000,1273.000000);
|
|
|
+ f.add(6705.594000,1273.000000);
|
|
|
+ f.add(6705.417000,1273.000000);
|
|
|
+ f.add(6705.136000,1273.000000);
|
|
|
+ f.add(6705.608000,1273.000000);
|
|
|
+ f.add(6705.505000,1273.000000);
|
|
|
+ f.add(6705.422000,1273.000000);
|
|
|
+ f.add(6705.640000,1273.000000);
|
|
|
+ f.add(6705.280000,1273.000000);
|
|
|
+ f.log();
|
|
|
+ zlist<int,128> m_test;
|
|
|
+ for(int i= 1 ;i<=20;i++)
|
|
|
+ {
|
|
|
+ m_test.grow()=i;
|
|
|
+ if(i%5==0)
|
|
|
+ {
|
|
|
+ int x=0;
|
|
|
+ for(int j=0;j<5;j++)
|
|
|
+ {
|
|
|
+ x+=m_test(j);
|
|
|
+ }
|
|
|
+ m_test.rskip(5);
|
|
|
+ m_test.grow()=x;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for(int i=0;i<m_test.size();i++)
|
|
|
+ printf("%d\n",m_test(i));
|
|
|
+
|
|
|
+ line_r l(point(1,y(1)),point(13,y(13)));
|
|
|
+ if(l.contain(point(4,y(4))))printf("contain:%d,%f\n",4,y(4));
|
|
|
+ if(l.contain(point(5,y(5))))printf("contain:%d,%f\n",5,y(5));
|
|
|
+ if(l.contain(point(-5,y(-5))))printf("contain:%d,%f\n",-5,y(-5));
|
|
|
+ point p=l.projection(point(17,y(17)+1.5));
|
|
|
+ printf("projection:%f,%f\n",p.x,p.y);
|
|
|
+ p=l.projection(point(-17,y(-17)+1.5));
|
|
|
+ printf("projection:%f,%f\n",p.x,p.y);
|
|
|
+ printf("line:%s\n",l.to_string().c_str());
|
|
|
+ line_r ll=l;
|
|
|
+ printf("line:%s\n",ll.to_string().c_str());
|
|
|
+ bool b=l.is_same_direction(ll);
|
|
|
+ if(b)printf("%s [is same direction]%s\n",l.to_string().c_str(),ll.to_string().c_str());
|
|
|
+ line_r l2(point(4,y(4)),point(7,y(7)));
|
|
|
+ b=l.is_same_direction(l2);
|
|
|
+ if(b)printf("%s [is same direction]%s\n",l.to_string().c_str(),l2.to_string().c_str());
|
|
|
+ line_r l3(point(19,y(19)),point(31,y(31)));
|
|
|
+ b=l.is_same_direction(l3);
|
|
|
+ if(b)printf("%s [is same direction]%s\n",l.to_string().c_str(),l3.to_string().c_str());
|
|
|
+ line_r l4(point(19,y(19)),point(4,y(4)));
|
|
|
+ b=l.is_same_direction(l4);
|
|
|
+ if(!b)printf("%s [is not same direction]%s\n",l.to_string().c_str(),l4.to_string().c_str());
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+#endif
|
|
|
|