Psi Swarm Code V0.41 [With Beautiful Meme program]

Dependencies:   PsiSwarmLibrary mbed

Fork of BeautifulMemeProjectBT by Alan Millard

Revision:
30:513457c1ad12
diff -r 9756004e8499 -r 513457c1ad12 BeautifulMeme/vector.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BeautifulMeme/vector.cpp	Tue Mar 15 00:58:43 2016 +0000
@@ -0,0 +1,23 @@
+/// PsiSwarm Beautiful Meme Project Source Code
+/// Version 0.41
+/// James Hilder, Alan Millard, Homero Elizondo, Jon Timmis
+/// University of York
+
+// vector.cpp - Functions for calculating floating point bearing vectors
+
+#include "bmeme.h"
+
+
+struct FloatVector addVector(struct FloatVector in_vector, int angle, int distance){
+    struct FloatVector out_vector;
+    float sin_component_old = sin(in_vector.angle * TO_RAD) * in_vector.distance;
+    float cos_component_old = cos(in_vector.angle * TO_RAD) * in_vector.distance;
+    float sin_component_new = sin(angle * TO_RAD) * distance;
+    float cos_component_new = cos(angle * TO_RAD) * distance;
+    float sin_component_sum = sin_component_old + sin_component_new;
+    float cos_component_sum = cos_component_old + cos_component_new;
+    out_vector.distance = sqrt((sin_component_sum * sin_component_sum) + (cos_component_sum * cos_component_sum));
+    out_vector.angle = atan2(sin_component_sum ,cos_component_sum) * TO_DEG;
+    //out("Angle:%f  Distance:%f\n",out_vector.angle,out_vector.distance);
+    return out_vector;
+}
\ No newline at end of file