Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 9749


Ignore:
Timestamp:
Nov 4, 2013, 4:32:43 PM (10 years ago)
Author:
wroennin
Message:

Math.cc:get3DProjection: transformation changed

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/radarDreiD/src/libraries/util/Math.cc

    r9742 r9749  
    211211
    212212        // new coordinate system base y_coordinate
    213         orxonox::Vector3 myside = -mydirection.crossProduct(myorthonormal);
     213        orxonox::Vector3 myside = mydirection.crossProduct(-myorthonormal);
    214214
    215215        // inverse of the transform matrix
     
    218218                                                +mydirection.z * (myside.x*myorthonormal.y - myside.y*myorthonormal.x);
    219219        float invdet = 1/determinant;
     220
     221        // transform matrix
    220222        orxonox::Vector3 xinvtransform;
    221223        orxonox::Vector3 yinvtransform;
    222224        orxonox::Vector3 zinvtransform;
    223225
    224         xinvtransform.x =  (myside.y      * myorthonormal.z - myorthonormal.y * myside.z       )*invdet;
    225         yinvtransform.x = -(mydirection.y * myorthonormal.z - mydirection.z   * myorthonormal.y)*invdet;
    226         zinvtransform.x =  (mydirection.y * myside.z        - mydirection.z   * myside.y       )*invdet;
    227         xinvtransform.y = -(myside.x      * myorthonormal.z - myside.z        * myorthonormal.x)*invdet;
    228         yinvtransform.y =  (mydirection.x * myorthonormal.z - mydirection.z   * myorthonormal.x)*invdet;
    229         zinvtransform.y = -(mydirection.x * myside.z        - myside.x        * mydirection.z  )*invdet;
    230         xinvtransform.z =  (myside.x      * myorthonormal.y - myorthonormal.x * myside.y       )*invdet;
    231         yinvtransform.z = -(mydirection.x * myorthonormal.y - myorthonormal.x * mydirection.y  )*invdet;
    232         zinvtransform.z =  (mydirection.x * myside.y        - myside.x        * mydirection.x  )*invdet;
     226        xinvtransform.x = (myside.y        * myorthonormal.z - myorthonormal.y * myside.z       )*invdet;
     227        xinvtransform.y = (mydirection.z   * myorthonormal.y - mydirection.y   * myorthonormal.z)*invdet;
     228        xinvtransform.z = (mydirection.y  * myside.z        - mydirection.z   * myside.y       )*invdet;
     229        yinvtransform.x = (myside.z        * myorthonormal.x - myside.x        * myorthonormal.z)*invdet;
     230        yinvtransform.y = (mydirection.x  * myorthonormal.z - mydirection.z   * myorthonormal.x)*invdet;
     231        yinvtransform.z = (myside.x        * mydirection.z   - mydirection.x   * myside.z       )*invdet;
     232        zinvtransform.x = (myside.x        * myorthonormal.y - myorthonormal.x * myside.y       )*invdet;
     233        zinvtransform.y = (myorthonormal.x * mydirection.y   - mydirection.x   * myorthonormal.y)*invdet;
     234        zinvtransform.z = (mydirection.x   * myside.y        - myside.x        * mydirection.y  )*invdet;
    233235
    234236        // coordinate transformation
     
    238240
    239241        // cap vector for map
    240         distance.x = clamp<float>(distance.x, -detectionlimit/5, detectionlimit/5);
    241         distance.y = clamp<float>(distance.y, -detectionlimit/5, detectionlimit/5);
    242         distance.z = clamp<float>(distance.z, -detectionlimit/5, detectionlimit/5);
    243         float distancelength = distance.length();
    244         distance = distance / distancelength;
     242        //distance.x = clamp<float>(distance.x, -detectionlimit/5, detectionlimit/5);
     243        //distance.y = clamp<float>(distance.y, -detectionlimit/5, detectionlimit/5);
     244        //distance.z = clamp<float>(distance.z, -detectionlimit/5, detectionlimit/5);
     245        //float distancelength = distance.length();
     246        distance = 5 * distance / detectionlimit;
    245247
    246248        // project vector for the rotated 3DMap on screen
    247         float xcoordinate = distance.y;
     249        float xcoordinate = -distance.y; // -; cause in room myside points to the left, on screen x to the right
    248250        float ycoordinate = (distance.x*sin(mapangle)+distance.z*cos(mapangle));
    249251        return orxonox::Vector2(xcoordinate , ycoordinate);
Note: See TracChangeset for help on using the changeset viewer.