Sha256: 5d0bdacc6520948583f82c8d639f5e23ec314068a8bea420cfc903d707babc3b

Contents?: true

Size: 1.57 KB

Versions: 70

Compression:

Stored size: 1.57 KB

Contents

#include <Gosu/Math.hpp>
#include <cmath>
#include <cstdlib>

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

double Gosu::offsetX(double angle, double radius)
{
    return +std::sin(angle / 180 * pi) * radius;
}

double Gosu::offsetY(double angle, double radius)
{
    return -std::cos(angle / 180 * pi) * radius;
}

double Gosu::angle(double fromX, double fromY, double toX, double toY,
    double def)
{
    double distX = toX - fromX;
    double distY = toY - fromY;

    if (distX == 0 && distY == 0)
        return def;
    else
        return normalizeAngle(radiansToGosu(std::atan2(distY, distX)));
}

double Gosu::angleDiff(double from, double to)
{
    return Gosu::normalizeAngle(to - from + 180) - 180;
}

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

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

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

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

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

Version data entries

70 entries across 70 versions & 1 rubygems

Version Path
gosu-0.10.9.pre1 src/Math.cpp
gosu-0.10.8 src/Math.cpp
gosu-0.10.7 src/Math.cpp
gosu-0.10.6 src/Math.cpp
gosu-0.10.5 src/Math.cpp
gosu-0.10.5.pre0 src/Math.cpp
gosu-0.10.5.pre1 src/Math.cpp
gosu-0.10.4 src/Math.cpp
gosu-0.10.3 src/Math.cpp
gosu-0.10.2 src/Math.cpp
gosu-0.10.2.pre1 src/Math.cpp
gosu-0.10.1.2 src/Math.cpp
gosu-0.10.1.1 src/Math.cpp
gosu-0.10.1 src/Math.cpp
gosu-0.10.0 src/Math.cpp
gosu-0.9.2 src/Math.cpp
gosu-0.9.2.pre1 src/Math.cpp
gosu-0.9.1 src/Math.cpp
gosu-0.9.0 src/Math.cpp
gosu-0.9.0.pre1 src/Math.cpp