wangzhengquan
2020-08-24 fcf50e1eafee305e3f0bd34064f988a2ac8f5e5d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <usg_common.h>        /* cos */
#include <graph.h>
#include <IndirectAlg.h>
using namespace std;
 
int test2() {
    // IndirectAlg indirectAlg({  {{0.0, 0.0}, {1000.0, 0.0}}, {{1000.0, 0.0}, {1000.0, 1000.0}}, {{1000.0, 1000.0}, {0.0, 1000.0}}, {{0.0, 1000.0}, {0.0, 0.0}} }, 5, {1, 1});
    /**
     * 第一个参数@points  组成观测区域的彼此相邻的点
     * 第二个参数@_keepTime 保持时间
     * 第三个参数@_direction 正确行进的方向方向
     */
    IndirectAlg indirectAlg((std::initializer_list<Point>){{0.0, 0.0}, {1000.0, 0.0},  {1000.0, 1000.0}, {0.0, 1000.0} }, 5, {1, 1});
    
    int i = 0;
    // time_t start_time;
    srand((unsigned) time(0));
 
    double rx, ry;
    bool isRetrograde;
    //起点
    Point start = {0, 0};
    //传入的流数据记录信息Record 
    Record record;
    record.id = 1; //目标ID 
    record.timestamp = time(0); //时间戳
    record.coordinate = start; // 坐标
    // time(&start_time);
    //判断是否逆行
    while(!(isRetrograde = indirectAlg.isRetrograde(record)) ) {
        rx = ((double)(rand()%10))/100000;
        ry = ((double)(rand()%10))/100000;
 
        //std::cout << timestamp << ":" <<  << "isRetrograde" << isRetrograde;
       // err_msg(0, "%ld : {%f, %f}  %d\n", record.timestamp, record.coordinate.x, record.coordinate.y, isRetrograde);
        record.timestamp = time(0);
        
        //if (difftime(time(0), start_time) > 1)
        if (i > 10)
        {
            record.coordinate = {record.coordinate.x - rx , record.coordinate.y - ry};
        } else {
            record.coordinate = {record.coordinate.x + rx , record.coordinate.y + ry};
        }
 
        if (i > 100)
            break;
 
        sleep(1);
        i++;
    }
    printf("return %ld : {%f, %f}  %d\n", record.timestamp, record.coordinate.x, record.coordinate.y, isRetrograde);
    return 0;
}
 
 
int main() {
    test2();
 
}