hMove and cAngle

Dependents:   moveTest

gyro.cpp

Committer:
THtakahiro702286
Date:
2019-06-10
Revision:
0:6371d70a58f2
Child:
1:1b01dbd85589

File content as of revision 0:6371d70a58f2:

#include "gyro.h"

gyro::gyro(int num)
{
    wheelRad = new double[num];
}

void gyro::setRad(int num,double rad)
{
    wheelRad[num] = rad;
}

double gyro::hMove(double way, int num)
{
    delete[] wheelRad;
    if(way == 10) {return 0;}

    return sin(way - wheelRad[num]);
}

void gyro::setIdeal(double angle)
{
    ideal = angle;
}

double gyro::cAngle(double angle)
{
    toChange = 180 - ideal;
    changed = angle + toChange;
    if (changed > 180)
    {
        changed -= 360;
    }
    if(fabs(changed) < 179)
    {
        if(changed >= 0)
        {
            if(180 - changed >= 25)
            {
                return -0.2;
            }
            return -0.1;
        }
        else
        {
            if(180 + changed >= 25)
            {
                return 0.2;
            }
            return 0.1;
        }
    }
    return 0;
}