Changeset 86

Show
Ignore:
Timestamp:
06/23/08 07:10:33 (2 years ago)
Author:
aqua
Message:

roll back to revision 79

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • snippet/image_projection/projection.c

    r85 r86  
    201201         
    202202        matrix* a_inv; 
    203  
    204203        matrix* projection; 
    205204         
    206         a = matrix_new( 6, 6 ); 
    207         b = matrix_new( 6, 1 ); 
     205        a = matrix_new( 8, 8 ); 
     206        b = matrix_new( 8, 1 ); 
    208207 
    209208        a->var[0][0] = x[0]; 
    210209        a->var[0][1] = y[0]; 
    211210        a->var[0][2] = 1.0; 
     211        a->var[0][6] = -1 * _x[0] * x[0]; 
     212        a->var[0][7] = -1 * _x[0] * y[0]; 
    212213         
    213214        a->var[1][0] = x[1]; 
    214215        a->var[1][1] = y[1]; 
    215216        a->var[1][2] = 1.0; 
     217        a->var[1][6] = -1 * _x[1] * x[1]; 
     218        a->var[1][7] = -1 * _x[1] * y[1]; 
    216219         
    217220        a->var[2][0] = x[2]; 
    218221        a->var[2][1] = y[2]; 
    219222        a->var[2][2] = 1.0; 
    220          
    221         a->var[3][3] = x[0]; 
    222         a->var[3][4] = y[0]; 
    223         a->var[3][5] = 1.0; 
    224  
    225         a->var[4][3] = x[1]; 
    226         a->var[4][4] = y[1]; 
     223        a->var[2][6] = -1 * _x[2] * x[2]; 
     224        a->var[2][7] = -1 * _x[2] * y[2]; 
     225         
     226        a->var[3][0] = x[3]; 
     227        a->var[3][1] = y[3]; 
     228        a->var[3][2] = 1.0; 
     229        a->var[3][6] = -1 * _x[3] * x[3]; 
     230        a->var[3][7] = -1 * _x[3] * y[3]; 
     231         
     232        a->var[4][3] = x[0]; 
     233        a->var[4][4] = y[0]; 
    227234        a->var[4][5] = 1.0; 
    228  
    229         a->var[5][3] = x[2]; 
    230         a->var[5][4] = y[2]; 
     235        a->var[4][6] = -1 * x[0] * _y[0]; 
     236        a->var[4][7] = -1 * y[0] * _y[0]; 
     237 
     238        a->var[5][3] = x[1]; 
     239        a->var[5][4] = y[1]; 
    231240        a->var[5][5] = 1.0; 
    232  
     241        a->var[5][6] = -1 * x[1] * _y[1]; 
     242        a->var[5][7] = -1 * y[1] * _y[1]; 
     243 
     244        a->var[6][3] = x[2]; 
     245        a->var[6][4] = y[2]; 
     246        a->var[6][5] = 1.0; 
     247        a->var[6][6] = -1 * x[2] * _y[2]; 
     248        a->var[6][7] = -1 * y[2] * _y[2]; 
     249 
     250        a->var[7][3] = x[3]; 
     251        a->var[7][4] = y[3]; 
     252        a->var[7][5] = 1.0; 
     253        a->var[7][6] = -1 * x[3] * _y[3]; 
     254        a->var[7][7] = -1 * y[3] * _y[3]; 
     255         
    233256        b->var[0][0] = _x[0]; 
    234257        b->var[1][0] = _x[1]; 
    235258        b->var[2][0] = _x[2]; 
    236         b->var[3][0] = _y[0]; 
    237         b->var[4][0] = _y[1]; 
    238         b->var[5][0] = _y[2]; 
     259        b->var[3][0] = _x[3]; 
     260        b->var[4][0] = _y[0]; 
     261        b->var[5][0] = _y[1]; 
     262        b->var[6][0] = _y[2]; 
     263        b->var[7][0] = _y[3]; 
    239264 
    240265        a_inv = matrix_inv(a); 
    241  
    242266        c = matrix_multiple( a_inv, b ); 
    243267 
     
    251275        projection->var[1][2] = c->var[5][0]; 
    252276         
    253         projection->var[2][0] = 0; 
    254         projection->var[2][1] = 0; 
     277        projection->var[2][0] = c->var[6][0]; 
     278        projection->var[2][1] = c->var[7][0]; 
    255279        projection->var[2][2] = 1.0; 
    256280 
     
    356380} 
    357381 
     382