19,468
社区成员
发帖
与我相关
我的任务
分享
struct VECTOR3D
{
double x,y,z;
};
// 随机[min,max]实数
inline float RandFloat( float min, float max = 0 )
{
return (rand()/32767)*(max - min) + min;
}
// 随机[min,max]实数,希望靠近min的概率大,靠近max的概率小
inline float RandFloatWishSmall( float min, float max )
{
return (1.0f-sqrt(RandFloat(1)))*(max - min) + min;
}
#include <stdio.h>
void main()
{
float damage;
damage = RandFloatWishSmall(100,200);
printf("%5.1f",damage);
}
// 常数
const float Pi = 3.141592654f;
const float doublePi = 6.28318531f;
// 3D向量
struct VECTOR3D
{
float x,y,z;
};
// 随机[min,max]实数
inline float RandFloat( float min, float max = 0 )
{
return (rand()/32767)*(min - max) + min;
}
// 随机经度
inline float RandLongitude()
{
return RandFloat(doublePi);
}
// 随机纬度
inline float RandLatitude()
{
return asinf(RandFloat(-1, 1));
}
// 随机单位向量
VECTOR3D* RandIdentityVector(VECTOR3D* pOut)
{
if (pOut)
return NULL;
float a = RandLongitude();
float b = RandLatitude();
pOut->x = cosf(a)*cosf(b);
pOut->y = sinf(a)*cosf(b);
pOut->z = sinf(b);
return pOut;
}