demoII5_2.cpp
上传用户:husern
上传日期:2018-01-20
资源大小:42486k
文件大小:2k
源码类别:

游戏

开发平台:

Visual C++

  1. // DEMOII5_2.CPP - 3D plane-point solver
  2. // INCLUDES ///////////////////////////////////////////////////
  3. #define WIN32_LEAN_AND_MEAN  
  4. #ifndef INITGUID
  5. #define INITGUID       // you need this or DXGUID.LIB
  6. #endif
  7. #include <windows.h>   // include important windows stuff
  8. #include <windowsx.h> 
  9. #include <mmsystem.h>
  10. #include <objbase.h>
  11. #include <iostream.h> // include important C/C++ stuff
  12. #include <conio.h>
  13. #include <stdlib.h>
  14. #include <malloc.h>
  15. #include <memory.h>
  16. #include <string.h>
  17. #include <stdarg.h>
  18. #include <stdio.h>
  19. #include <math.h>
  20. #include <io.h>
  21. #include <fcntl.h>
  22. #include <direct.h>
  23. #include <wchar.h>
  24. #include <ddraw.h>      // needed for defs in T3DLIB1.H 
  25. #include "T3DLIB1.H"    // T3DLIB4 is based on some defs in this 
  26. #include "T3DLIB4.H"
  27. // DEFINES ////////////////////////////////////////////////////
  28. // TYPES //////////////////////////////////////////////////////
  29. // CLASSES ////////////////////////////////////////////////////
  30. // GLOBALS ////////////////////////////////////////////////////
  31. // define vars expected by graphics engine to compile
  32. HWND main_window_handle;
  33. // FUNCTIONS //////////////////////////////////////////////////
  34. void main()
  35. {
  36. VECTOR3D plane_n; // plane normal
  37. POINT3D  plane_p; // point on plane
  38. PLANE3D plane;    // the plane
  39. printf("n3D Plane Half-Space Testern");
  40. // get the normal to the plane
  41. printf("nEnter normal to plane: nx, ny, nz?");
  42. scanf("%f, %f, %f", &plane_n.x, &plane_n.y, &plane_n.z);
  43. // get a point on the plane
  44. printf("nEnter a point on the plane: x,y,z?");
  45. scanf("%f, %f, %f", &plane_p.x, &plane_p.y, &plane_p.z);
  46. // create the plane from the point and normal
  47. PLANE3D_Init(&plane, &plane_p, &plane_n, TRUE);
  48. // test point
  49. POINT3D p_test;
  50. while(1) {
  51. printf("nEnter a point to test for which half-space: x,y,z?");
  52. scanf("%f, %f, %f", &p_test.x, &p_test.y, &p_test.z);
  53. // test the point
  54. float hs = Compute_Point_In_Plane3D(&p_test, &plane);
  55. if (hs > 0.0)
  56.    printf("nhalf space = %f, thus, point is on positive half-space",hs);
  57. else
  58. if (hs < 0.0)
  59.    printf("nhalf space = %f, thus, point is on negative half-space",hs);
  60. else
  61. if (hs==0.0)
  62.    printf("nhalf space = %f, thus, point is in plane",hs);
  63. } // end while
  64. } // end main