Pedal Point源码发布及说明(4)

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 spanzhang 的 blog

本文属spanzhang原创,其blog地址为:http://blog.csdn.net/spanzhang。引用或转贴请注明出处,谢谢!!

/*/////////////////////////////////////////////////////////////////////

  文件:stdafx.cpp

  描述:pedalpoint预编译实现文件

  作者:张友邦

  时间:2004-09-02

  声明:本文件系作者辛苦熬夜的产物,任何人使用本文件请保留本描述文本。

  历史:

/*/////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////
#include"stdafx.h"

namespace pb
{
//////////////////////////////////////////////////////////////////////
handle eventmutex;

//返回一个[0,1]随机数
float rnd()
{
 return (float)(::rand()) / (float)(rand_max);
}

//返回一个[0,max]随机数
float rnd(float max)
{
 return rnd() * max;
}

//返回一个[-1,1]之间的随机数
float rand()
{
 return ((float)(::rand()) / (float)(rand_max)) * 2.0f - 1.0f;
}

float rand(float max)
{
 return rand() * max;
}

//返回一个随机的符号
float randsign()
{
 return (::rand()>rand_max/2?-1.0f:1.0f);
}

//符号函数
int sign(float num)
{
 if(num==0.0)
  return 0;
 else
  return (num>0.0f?1:-1);
}

//用时间来初始化随机数
void initrandom()
{
    time_t ltime;
    time(&ltime);
 srand(ltime % 1000);
 ::rand();
}

float trwv(float r)
{
 r = fabs( .5 * r );
 r = 2 * ( r - floor( r ) ); 
 if ( r > 1 )
  r = 2 - r;

 return r;
}

float wrap(float r)
{
 return r - floor(r);
}

float sqr(float r)
{
 return r * r;
}

float clip(float r)
{
 if ( r < 0 ) r = 0; else if ( r > 1 ) r = 1;

 return r;
}

float sgn(float r)
{
 return ( r >= 0 ) ? 1 : -1;
}

float pos(float r)
{
 if ( r < 0 ) return 0;
 return r;
}

float sqwv(float r)
{
 return ( r >= -1 && r <= 1 ) ? 1 : 0;
}

int trnc(float r)
{
 return int(r);
}

//绕一个特定点旋转特定的角度
void rotate(int& x, int& y, int cx, int cy, float theta)
{
 int xx = x - cx;
 int yy = y - cy;
 
 x = xx * cos(theta) - yy * sin(theta) + cx;
 y = xx * sin(theta) + yy * cos(theta) + cy;
}


//////////////////////////////////////////////////////////////////////
};//namespace pb

//////////////////////////////////////////////////////////////////////
//end of this file.

本文关键:Pedal Point源码发布及说明(4)
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top