Sha256: 558619c107bf9fe362d73a7c66b93392fec1b789cc45ad8b868142dea1fba503

Contents?: true

Size: 1.44 KB

Versions: 20

Compression:

Stored size: 1.44 KB

Contents

#include <Gosu/Math.hpp>
#include <cstdlib>
using namespace std;

double Gosu::random(double min, double max)
{
    double rnd = rand();
    return rnd / (static_cast<double>(RAND_MAX) + 1) * (max - min) + min;
}

double Gosu::offset_x(double angle, double radius)
{
    return +sin(angle / 180 * M_PI) * radius;
}

double Gosu::offset_y(double angle, double radius)
{
    return -cos(angle / 180 * M_PI) * radius;
}

double Gosu::angle(double from_x, double from_y, double to_x, double to_y, double def)
{
    double dist_x = to_x - from_x;
    double dist_y = to_y - from_y;

    if (dist_x == 0 && dist_y == 0) return def;

    return normalize_angle(radians_to_gosu(atan2(dist_y, dist_x)));
}

double Gosu::angle_diff(double from, double to)
{
    return normalize_angle(to - from + 180) - 180;
}

double Gosu::normalize_angle(double angle)
{
    return wrap(angle, 0.0, 360.0);
}

int Gosu::wrap(int value, int min, int max)
{
    int result = (value - min) % (max - min);
    return result < 0 ? result + max : result + min;
}

float Gosu::wrap(float value, float min, float max)
{
    float result = fmodf(value - min, max - min);
    return result < 0 ? result + max : result + min;
}

double Gosu::wrap(double value, double min, double max)
{
    double result = fmod(value - min, max - min);
    return result < 0 ? result + max : result + min;
}

double Gosu::distance(double x1, double y1, double x2, double y2)
{
    return sqrt(distance_sqr(x1, y1, x2, y2));
}

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
gosu-1.3.0 src/Math.cpp
gosu-1.2.0 src/Math.cpp
gosu-1.1.1.1 src/Math.cpp
gosu-1.1.0 src/Math.cpp
gosu-1.1.0.pre2 src/Math.cpp
gosu-1.1.0.pre1 src/Math.cpp
gosu-1.0.0 src/Math.cpp
gosu-1.0.0.pre2 src/Math.cpp
gosu-1.0.0.pre1 src/Math.cpp
gosu-0.15.2 src/Math.cpp
gosu-0.15.1 src/Math.cpp
gosu-0.15.0 src/Math.cpp
gosu-0.14.6.pre1 src/Math.cpp
gosu-0.14.5 src/Math.cpp
gosu-0.14.4 src/Math.cpp
gosu-0.14.4.pre2 src/Math.cpp
gosu-0.14.3.pre1 src/Math.cpp
gosu-0.14.3 src/Math.cpp
gosu-0.14.0 src/Math.cpp
gosu-0.14.0.pre2 src/Math.cpp