Subversion Repositories AndroidProjects

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
204 chris 1
#ifdef _WIN32
2
#  include <windows.h>
3
#endif
4
#include <math.h>
5
#include <stdio.h>
6
#include <stdlib.h>
7
#include "calib_cparam.h"
8
 
9
void   initLineModel( int   *line_num, int *loop_num,
10
                      int    line_mode[LINE_MAX],
11
                      double inter_coord[LOOP_MAX][LINE_MAX][LINE_MAX][3] )
12
{
13
    int     i, j, k;
14
    char    buf[256];
15
    int     hno, vno;
16
    double  dist1, dist2;
17
 
18
    hno = 7;
19
    vno = 9;
20
    *loop_num = 5;
21
    dist1 =  40.0;
22
    dist2 = 100.0;
23
 
24
    printf("Number of horizontal lines (%d): ", hno);
25
    fgets(buf, 256, stdin);
26
    sscanf( buf, "%d", &hno );
27
    printf("Number of vertical lines (%d): ", vno);
28
    fgets(buf, 256, stdin);
29
    sscanf( buf, "%d", &vno );
30
    if( hno + vno > LINE_MAX ) {
31
        printf("too many lines!!\n");
32
        exit(0);
33
    }
34
 
35
    printf("Number of iteration (%d): ", *loop_num);
36
    fgets(buf, 256, stdin);
37
    sscanf( buf, "%d", loop_num );
38
    if( *loop_num > LOOP_MAX ) {
39
        printf("too many iteration!!\n");
40
        exit(0);
41
    }
42
 
43
    printf("Distance among lines (%f): ", dist1);
44
    fgets(buf, 256, stdin);
45
    sscanf( buf, "%lf", &dist1 );
46
    printf("Distance to move (%f): ", dist2);
47
    fgets(buf, 256, stdin);
48
    sscanf( buf, "%lf", &dist2 );
49
 
50
 
51
    *line_num = hno + vno;
52
    for( i = 0; i < hno; i++ ) line_mode[i]     = L_HORIZONTAL;
53
    for( i = 0; i < vno; i++ ) line_mode[i+hno] = L_VERTICAL;
54
 
55
    for( k = 0; k < LOOP_MAX; k++ ) {
56
        for( i = 0; i < LINE_MAX; i++ ) {
57
            for( j = 0; j < LINE_MAX; j++ ) {
58
                inter_coord[k][j][i][0] = -10000.0;
59
                inter_coord[k][j][i][1] = -10000.0;
60
                inter_coord[k][j][i][2] = -10000.0;
61
            }
62
        }
63
    }
64
 
65
    for( k = 0; k < *loop_num; k++ ) {
66
        for( j = 0; j < hno; j++ ) {
67
            for( i = 0; i < vno; i++ ) {
68
                inter_coord[k][j][i+hno][0] =   dist1 * i;
69
                inter_coord[k][j][i+hno][1] =   dist1 * j;
70
                inter_coord[k][j][i+hno][2] =   dist2 * k;
71
            }
72
        }
73
    }
74
}