Advertisement
Guest User

Untitled

a guest
Feb 11th, 2016
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. int project3dto2d_point(t_point *p, t_camera *cam)
  2. {
  3. double d[3];
  4. double pi;
  5.  
  6. if (!p || !cam)
  7. return (0);
  8. pi = 3.14159265359;
  9. d[0] = cosf(cam->pany * pi / 180) * (sinf(cam->panz * pi / 180) *
  10. (p->y3d - cam->y3d) + cosf(cam->panz * pi / 180) * (p->x3d - cam->x3d)) -
  11. sinf(cam->pany * pi / 180) * (p->z3d - cam->z3d);
  12.  
  13. d[1] = sinf(cam->panx * pi / 180) * (cosf(cam->pany * pi / 180) *
  14. (p->z3d - cam->z3d) + sinf(cam->pany * pi / 180) *
  15. (sinf(cam->panz * pi / 180) * (p->y3d - cam->y3d) +
  16. cosf(cam->panz * pi / 180) * (p->x3d - cam->x3d))) +
  17. cosf(cam->panx * pi / 180) * (cosf(cam->panz * pi / 180) *
  18. (p->y3d - cam->y3d) - sinf(cam->panz * pi / 180) * (p->x3d - cam->x3d));
  19.  
  20. d[2] = cosf(cam->panx * pi / 180) * (cosf(cam->pany * pi / 180) *
  21. (p->z3d - cam->z3d) + sinf(cam->pany * pi / 180) *
  22. (sinf(cam->panz * pi / 180) * (p->y3d - cam->y3d) +
  23. cosf(cam->panz * pi / 180) * (p->x3d - cam->x3d))) -
  24. sinf(cam->panx * pi / 180) * (cosf(cam->panz * pi / 180) *
  25. (p->y3d - cam->y3d) - sinf(cam->panz * pi / 180) * (p->x3d - cam->x3d));
  26.  
  27. p->x2d = ((50.0 / (d[2])) * d[0] - 0.0) * cam->zoom + 1920 / 2;
  28. p->y2d = ((50.0 / (d[2])) * d[1] - 0.0) * cam->zoom + 1080 / 2;
  29. return (1);
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement