瀏覽代碼

Lesson 12.4

Godzil 3 年之前
父節點
當前提交
9ee7ee4f74
共有 2 個文件被更改,包括 27 次插入1 次删除
  1. 6 1
      source/include/vector.h
  2. 21 0
      source/vector.c

+ 6 - 1
source/include/vector.h

@@ -33,9 +33,14 @@ typedef struct vec4_t
  * Prototypes
  **********************************************************************************************************************/
 /* ---------------------------------------------- 2D Vectors operations --------------------------------------------- */
-
+double vec2Getlength(vec2_t v);
+vec2_t vec2AddVectors(vec2_t a, vec2_t b);
+vec2_t vec2SubVectors(vec2_t a, vec2_t b);
 
 /* ---------------------------------------------- 3D Vectors operations --------------------------------------------- */
+double vec3Getlength(vec3_t v);
+vec3_t vec3AddVectors(vec3_t a, vec3_t b);
+vec3_t vec3SubVectors(vec3_t a, vec3_t b);
 
 vec3_t vec3RotateX(vec3_t original, double angle);
 vec3_t vec3RotateY(vec3_t original, double angle);

+ 21 - 0
source/vector.c

@@ -16,7 +16,17 @@ double vec2Getlength(vec2_t v)
     return sqrt(v.x * v.x + v.y * v.y);
 }
 
+vec2_t vec2AddVectors(vec2_t a, vec2_t b)
+{
+    vec2_t ret = { a.x + b.x, a.y + b.y};
+    return ret;
+}
 
+vec2_t vec2SubVectors(vec2_t a, vec2_t b)
+{
+    vec2_t ret = { a.x - b.x, a.y - b.y};
+    return ret;
+}
 
 
 /* ---------------------------------------------- 3D Vectors operations --------------------------------------------- */
@@ -25,6 +35,17 @@ double vec3Getlength(vec3_t v)
     return sqrt(v.x * v.x + v.y * v.y + v.z * v.z);
 }
 
+vec3_t vec3AddVectors(vec3_t a, vec3_t b)
+{
+    vec3_t ret = { a.x + b.x, a.y + b.y , a.z + b.z };
+    return ret;
+}
+
+vec3_t vec3SubVectors(vec3_t a, vec3_t b)
+{
+    vec3_t ret = { a.x - b.x, a.y - b.y , a.z - b.z };
+    return ret;
+}
 
 vec3_t vec3RotateX(vec3_t original, double angle)
 {