项目作者: yoyoberenguer

项目描述 :
2D vector library in C
高级语言: C
项目地址: git://github.com/yoyoberenguer/2DVECTOR.git
创建时间: 2020-01-16T11:27:50Z
项目社区:https://github.com/yoyoberenguer/2DVECTOR

开源协议:

下载


2D-VECTOR-LIBRARY-

2D vector library in C

Provides vector functions, similar to pygame.math.Vector2 library

  1. // Vector intialization
  2. struct vector2d;
  3. void vecinit(struct vector2d *v, float x, float y);
  4. // Vector distance
  5. float distance_to(struct vector2d v1, struct vector2d v2);
  6. float distance_squared_to(struct vector2d v1, struct vector2d v2);
  7. // Vector length
  8. float vlength(struct vector2d *v);
  9. float length_squared(struct vector2d v);
  10. // Vectors operations inplace (similar to elementwise in pygame.math.Vector2 library)
  11. // the result of the operation is assigned to the variable v1 (v2 remains unchanged)
  12. void subv_inplace(struct vector2d *v1, struct vector2d v2);
  13. void addv_inplace(struct vector2d *v1, struct vector2d v2);
  14. void divv_inplace(struct vector2d *v1, struct vector2d v2);
  15. void mulv_inplace(struct vector2d *v1, struct vector2d v2);
  16. // Vector operations elementwise (similar to elementwise in pygame.math.Vector2 library)
  17. // Return a new vector2d (v1 and v2 remains unchanged)
  18. struct vector2d mulcomponents(struct vector2d v1, struct vector2d v2);
  19. struct vector2d addcomponents(struct vector2d v1, struct vector2d v2);
  20. struct vector2d subcomponents(struct vector2d v1, struct vector2d v2);
  21. struct vector2d divcomponents(struct vector2d v1, struct vector2d v2);
  22. // Scaling vectors
  23. void scalevector2d_self(float c, struct vector2d *v);
  24. struct vector2d scalevector2d(float c, struct vector2d *v);
  25. // Dot product
  26. float dot(struct vector2d *v1, struct vector2d *v2);
  27. // Normalisation
  28. void normalize (struct vector2d *v);
  29. // Vector rotation
  30. void vrotate_deg(struct vector2d *v, float deg);
  31. void vrotate_rad(struct vector2d *v, float rad);
  32. // Vector Angle
  33. float angle_to(struct vector2d v1, struct vector2d v2);
  34. float vangle_rad(struct vector2d v);
  35. float vangle_deg(struct vector2d v);