diff options
Diffstat (limited to '')
-rw-r--r-- | vector/vector.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/vector/vector.c b/vector/vector.c index c8a5906..59f48cc 100644 --- a/vector/vector.c +++ b/vector/vector.c @@ -1,5 +1,6 @@ #include <stddef.h> #include <stdio.h> +#include <math.h> struct vec3 { double x; @@ -64,12 +65,16 @@ struct vec3 vec3_cross(struct vec3 * const v, struct vec3 * const u) return result; } +double vec3_mag(struct vec3 * const v) { + return sqrt((v->x * v->x) + (v->y * v->y) + (v->z * v->z)); +} + void vec3_print(struct vec3 * const v) { if (v == NULL) return; - printf("<%.2f,%.2f,%.2f>\n", v->x, v->y, v->y); + printf("<%.2f,%.2f,%.2f>\n", v->x, v->y, v->z); } @@ -84,6 +89,8 @@ int main(int argc, char *argv[]) printf("b = "); vec3_print(&b); + printf("||a|| = %f\n", vec3_mag(&a)); + printf("sum a + b : "); res = vec3_add(&a, &b); vec3_print(&res); |