Dependencies: mbed
ActiveCell.h
- Committer:
- shut
- Date:
- 2019-04-05
- Revision:
- 6:2cd6ae395c0f
- Parent:
- 4:5a892f5ab5a8
- Child:
- 7:3a755ebe4eaf
File content as of revision 6:2cd6ae395c0f:
#ifndef UNTITLED2_ACTIVECELL_H #define UNTITLED2_ACTIVECELL_H #include <iostream> #include <iomanip> #include <math.h> class ActiveCell { public: //cell dimension = 5x5cm int cellVal; float forceX; float forceY; float distance; int xt, yt; static const float repulsiveForce = 20; //robots position int x0; int y0; ActiveCell(){ cellVal=0; forceX=0; forceY=0; x0=0; y0=0; } void calForce() { forceX = (repulsiveForce * cellVal / pow(distance, 2)) * (xt - x0) / distance; forceY = (repulsiveForce * cellVal / pow(distance, 2)) * (yt - y0) / distance; } //Calculating distance from the robot void calDist(int idX, int idY) { if (idX < 5) { xt = x0 - (5 - idX) * 5; } else if (idX == 5) { xt = x0; } else { xt = x0 + (idX - 5) * 5; } if (idY > 5) { yt = y0 - (5 - idY) * 5; } else if (idY == 5) { yt = y0; } else { yt = y0 + (idY - 5) * 5; } distance = sqrt(pow((float)abs(x0 - xt), 2) + pow((float)abs(y0 - yt), 2)); } }; #endif //UNTITLED2_ACTIVECELL_H