中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual C++ > 综合文章
Pedal Point源码发布及说明(4)
作者:未知 时间:2005-07-27 21:55 出处:CSDN 责编:chinaitpower
              摘要:Pedal Point源码发布及说明(4)

本文属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.


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有