Math

#pragma once
#include "cocos2d.h"
USING_NS_CC;
#define CC_RADIANS_TO_DEGREES(__ANGLE__) ((__ANGLE__) * 57.29577951f) // PI * 180
class Math
{
public:
// math
static const float PI;
static float sin_d(float a);
static float cos_d(float a);


static float getRotation(const cocos2d::Point& from, const cocos2d::Point& to);//by pchj
static float getAngle(Point ptFir, Point ptSec);


// random
static void randomize();
static bool random();
static int random(int max);
static int random(int min, int max);
static float random(float min, float max);
};




#include "Math.h"
USING_NS_CC
const float Math::PI = 3.14159265f;


float Math::sin_d(float a)
{
return sin(a * PI / 180);
}


float Math::cos_d(float a)
{
return cos(a * PI / 180);
}


float Math::getRotation(const Point& from, const Point& to)
{
Point d = to - from;
float angle = atan2(d.x, d.y);
return angle * 180 / PI;
}


float Math::getAngle(Point ptFir, Point ptSec)
{
float xdif = ptSec.x - ptFir.x;
float ydif = ptSec.y - ptFir.y;
float angle;


if (xdif == 0 || ydif == 0)
{
angle = 0.f;
if (xdif == 0 && ydif > 0)
angle = 90.f;
else if (xdif == 0 && ydif < 0)
angle = 270.f;
else if (xdif < 0 && ydif == 0)
angle = 180.f;
}
else
{
angle = (float)CC_RADIANS_TO_DEGREES(atan(fabs((float)ydif / xdif)));
if (xdif < 0 && ydif > 0)
angle = 180.f - angle;
else if (xdif < 0 && ydif < 0)
angle += 180.f;
else if (xdif >0 && ydif < 0)
angle = 360.f - angle;
}
return -angle;
}




void Math::randomize()
{
srand(time(nullptr));
}


bool Math::random()
{
return rand() % 2 == 0;
}


int Math::random(int max)
{
return random(0, max);
}


int Math::random(int min, int max)
{
if (min == max)
return min;
return min + rand() % (max - min) ;
}


float Math::random(float min, float max)
{
return min + (max - min) * (rand() % 4096) / 4095;
}
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值