rot.h
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:2k
源码类别:

GIS编程

开发平台:

Visual C++

  1. /*
  2.  * rot.h
  3.  *
  4.  * FUNCTION:
  5.  * rotation matrix utilities
  6.  *
  7.  * HISTORY:
  8.  * Linas Vepstas Aug 1990
  9.  */
  10. /* ========================================================== */
  11. /* 
  12.  * The MACROS below generate and return more traditional rotation
  13.  * matrices -- matrices for rotations about principal axes.
  14.  */
  15. /* ========================================================== */
  16. #define ROTX_CS(m,cosine,sine)
  17. {
  18.    /* rotation about the x-axis */
  19.    m[0][0] = 1.0;
  20.    m[0][1] = 0.0;
  21.    m[0][2] = 0.0;
  22.    m[0][3] = 0.0;
  23.    m[1][0] = 0.0;
  24.    m[1][1] = (cosine);
  25.    m[1][2] = (sine);
  26.    m[1][3] = 0.0;
  27.    m[2][0] = 0.0;
  28.    m[2][1] = -(sine);
  29.    m[2][2] = (cosine);
  30.    m[2][3] = 0.0;
  31.    m[3][0] = 0.0;
  32.    m[3][1] = 0.0;
  33.    m[3][2] = 0.0;
  34.    m[3][3] = 1.0;
  35. }
  36. /* ========================================================== */
  37. #define ROTY_CS(m,cosine,sine)
  38. {
  39.    /* rotation about the y-axis */
  40.    m[0][0] = (cosine);
  41.    m[0][1] = 0.0;
  42.    m[0][2] = -(sine);
  43.    m[0][3] = 0.0;
  44.    m[1][0] = 0.0;
  45.    m[1][1] = 1.0;
  46.    m[1][2] = 0.0;
  47.    m[1][3] = 0.0;
  48.    m[2][0] = (sine);
  49.    m[2][1] = 0.0;
  50.    m[2][2] = (cosine);
  51.    m[2][3] = 0.0;
  52.    m[3][0] = 0.0;
  53.    m[3][1] = 0.0;
  54.    m[3][2] = 0.0;
  55.    m[3][3] = 1.0;
  56. }
  57. /* ========================================================== */
  58. #define ROTZ_CS(m,cosine,sine)
  59. {
  60.    /* rotation about the z-axis */
  61.    m[0][0] = (cosine);
  62.    m[0][1] = (sine);
  63.    m[0][2] = 0.0;
  64.    m[0][3] = 0.0;
  65.    m[1][0] = -(sine);
  66.    m[1][1] = (cosine);
  67.    m[1][2] = 0.0;
  68.    m[1][3] = 0.0;
  69.    m[2][0] = 0.0;
  70.    m[2][1] = 0.0;
  71.    m[2][2] = 1.0;
  72.    m[2][3] = 0.0;
  73.    m[3][0] = 0.0;
  74.    m[3][1] = 0.0;
  75.    m[3][2] = 0.0;
  76.    m[3][3] = 1.0;
  77. }
  78. /* ========================================================== */