Psi Swarm Code V0.41 [With Beautiful Meme program]
Dependencies: PsiSwarmLibrary mbed
Fork of BeautifulMemeProjectBT by
BeautifulMeme/vector.cpp@30:513457c1ad12, 2016-03-15 (annotated)
- Committer:
- jah128
- Date:
- Tue Mar 15 00:58:43 2016 +0000
- Revision:
- 30:513457c1ad12
Added serial handling for Psi Console
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jah128 | 30:513457c1ad12 | 1 | /// PsiSwarm Beautiful Meme Project Source Code |
jah128 | 30:513457c1ad12 | 2 | /// Version 0.41 |
jah128 | 30:513457c1ad12 | 3 | /// James Hilder, Alan Millard, Homero Elizondo, Jon Timmis |
jah128 | 30:513457c1ad12 | 4 | /// University of York |
jah128 | 30:513457c1ad12 | 5 | |
jah128 | 30:513457c1ad12 | 6 | // vector.cpp - Functions for calculating floating point bearing vectors |
jah128 | 30:513457c1ad12 | 7 | |
jah128 | 30:513457c1ad12 | 8 | #include "bmeme.h" |
jah128 | 30:513457c1ad12 | 9 | |
jah128 | 30:513457c1ad12 | 10 | |
jah128 | 30:513457c1ad12 | 11 | struct FloatVector addVector(struct FloatVector in_vector, int angle, int distance){ |
jah128 | 30:513457c1ad12 | 12 | struct FloatVector out_vector; |
jah128 | 30:513457c1ad12 | 13 | float sin_component_old = sin(in_vector.angle * TO_RAD) * in_vector.distance; |
jah128 | 30:513457c1ad12 | 14 | float cos_component_old = cos(in_vector.angle * TO_RAD) * in_vector.distance; |
jah128 | 30:513457c1ad12 | 15 | float sin_component_new = sin(angle * TO_RAD) * distance; |
jah128 | 30:513457c1ad12 | 16 | float cos_component_new = cos(angle * TO_RAD) * distance; |
jah128 | 30:513457c1ad12 | 17 | float sin_component_sum = sin_component_old + sin_component_new; |
jah128 | 30:513457c1ad12 | 18 | float cos_component_sum = cos_component_old + cos_component_new; |
jah128 | 30:513457c1ad12 | 19 | out_vector.distance = sqrt((sin_component_sum * sin_component_sum) + (cos_component_sum * cos_component_sum)); |
jah128 | 30:513457c1ad12 | 20 | out_vector.angle = atan2(sin_component_sum ,cos_component_sum) * TO_DEG; |
jah128 | 30:513457c1ad12 | 21 | //out("Angle:%f Distance:%f\n",out_vector.angle,out_vector.distance); |
jah128 | 30:513457c1ad12 | 22 | return out_vector; |
jah128 | 30:513457c1ad12 | 23 | } |