几个图形(02)

2016-02-19 13:13 2 1 收藏

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的几个图形(02)懂设计的网友们快点来了解吧!

【 tulaoshi.com - 编程语言 】


  /*分型图形库数学函数头文件*/
  /*math.inc*/
  #define Ln10 2.30258509299405E+000        /*数学常数定义*/
  #define Pi 3.1415927
  #define PiOver180 1.74532925199433E-002
  #define PiUnder180 5.72957795130823E+001
  
  typedef enum{false,true}Boolean;        /*数据存储格式定义*/
  typedef unsigned char Byte;
  typedef unsigned int Word;
  
  int Round(float x)                /*取近似值函数*/
  {
      return(int)(x+0.5));
  }
  int Trunc(float x)                /*取整函数*/
  {
      return(int)(x));
  }
  float SqrFP(float x)             /*求平方值函数*/
  {
      return(x*x);
  }
  int Sqr(int x)                  /*求平方根函数*/
  {
      return(X*x);               
  }
  float adians(float Angle)       /*弧度换算函数*/
  {
      return(Angle*PiOver180);
  }
  float Degress(float Angle)      /*角度转换函数*/
  {
      return(Angle*PiUnder180);
  }
  float CosD(float Angle)         /*求余弦函数*/
  {
      return(cos(Radians(Angle)));
  }
  float SinD(float Angle)         /*求正弦函数*/
  {
      return(sin(Radians(Angle)));
  }
  float Power(float Base,int EXPonent)        /*求取以e为底的幂函数*/
  {
      float BPower;
      int t;
      if(Exponent==0)
          return 1;
      else{
          BPower=1.0;
          for(t=1;t=Exponent;t++)
              BPower*=Base;
          return(BPower);
      }
  }
  float Log(float x)            /*求取标准 对数值函数*/
  {
      return(log(x)/Ln10);
  }
  float Exp10(float x)         /*求取反对数值函数*/
  {
      return(exp(x*Ln10));
  }
  float Sign(float x)         /*浮点型符号函数*/
  {
      if(x0)
          return -1;
      else{
          if(x0)
              return 1;
          else return 0;
      }
  }
  int IntSign(int x)        /*整型符号函数*/
  {
      if(x0)
          return -1;
      else{
          if(x0)
              return 1;
          else
              return 0;
      }
  }
  int IntSqrt(int x)        /*求整方根函数*/
  {
      int OddInt,OldArg,FirstSqrt;
      OddInt=1;
      OldArg=x;
      while(x=0){
          x=OddInt;
          OddInt+=2;
      }
      FirstSqrt=OddInt1;
      if(Sqrt(FirstSqrt)-FirstSqrt+1OldArg)
          return(FirstSqrt-1);
      else
          return(FirstSqrt);
  }
  int IntPower(int Base,int Exponent)        /*求以e为底的整幂函数*/
  {
      if(Exponent==0)
          return 1;
      else
          return(Base*IntPower(Base,Exponent-1));
  }
  
  /*与向量和矩阵相关的函数库*/
  /*Vector and Matrix Routines*/
  typedef float TDA[3];        /*常向量定义*/
  typedef int TDIA[3];
  typedef float FDA[4];
  typedef float Matx4x4[4][4];
  
  void vec(float r,float s,float t,TDA A)        /*浮点数向量赋值函数*/
  {
      A[0]=r;
      A[1]=s;
      A[2]=t;
  }
  void VecInt(int r,int s,int t,TDIA A)        /*整数向量赋值函数*/
  {
      A[0]=r;
      A[1]=s;
      A[2]=t;
  }
  void UnVec(TDA A,float *r,float *s,float *t)        /*浮点数向量取值函数*/
  {
      *r=A[0];
      *s=A[1];
      *t=A[2];
  }
  void UnVecInt(TDIA A,float *r,float *s,float *t)    /*整数向量取值函数*/
  {
      *r=A[0];
      *s=A[1];
      *t=A[2];
  }
  float VecDot(TDA A,TDA B)            /*向量求积函数*/
  {
      return(A[0]*B[0]+A[1]*B[1]+A[2]*B[2]);
  }
  void VecCross(TDA A,TDA B,TDA c)        /*向量叉乘函数*/
  {
      C[0]=A[1]*B[2]-A[2]*B[1];
      C[1]=A[2]*B[0]-A[0]*B[2];
      C[2]=A[0]*B[1]-A[1]*B[0];
  }
  float VecLen(TDA A)                /*向量长度函数*/
  {
      return(sqrt(SqrFP(A[0])+SqrFP(A[1])+SqrFP(A[2])));
  }
  void VecNormalize(TDA A)         /*向量初始化函数*/
  {
      float dist,invdist;
      dist=VecLen(A);
      if(!(dist==0.0)){
          invdist=1/dist;
          A[0]*=invdist;
          A[1]*=invdist;
          A[2]=invdist;
      }
      else{
          puts("Zero_length Vectors Cannot be Normalized");
          exit(1);
      }
  }
  void VexMatxult(FDA A,Matx4x4 Matix,FDA B)        /*向量乘矩阵函数*/
  {
      int mRow,mCol;
      for(mCol=0;mCol4;mCol++){
          B[mCol]=0;
          for(mRow=0;mRow4;mRow++)
              B[mCol]+=A[mRow]*Matrix[mRow][mCol];
      }
  }
  void VecSub(TDA A,TDA B,TDA C)            /*浮点数向量相减函数*/
  {
      C[0]=A[0]-B[0];
      C[1]=A[1]-B[1];
      C[2]=A[2]-B[2];
  }
  void VecSubInt(TDIA A,TDIA B,TDA C)        /*整数向量相减函数*/
  {
      C[0]=A[0]-B[0];
      C[1]=A[1]-B[1];
      C[2]=A[2]-B[2];
  

来源:https://www.tulaoshi.com/n/20160219/1603407.html

延伸阅读
标签: SQLServer
1.2 SQL Server 2000 的新特性 SQL Server 2000 全面扩展了SQL Server 7.0 的性能可靠性和易用性使它成为一个杰出的数据库平台可用于大型联机事务处理数据仓库以及电子商务等 SQL Server 2000 的新特性主要有以下内容 1.2.1 数据库增强 SQL Server 2000 引进了数据库和服务器增强功能以及其它一些新的特性 1 XML Extensible Markup Language 扩...
标签: CorelDRAW
7、复制这个形状,按下图颜色进行填充,然后缩小并调整这个复制出来的图形。(图21、22) 图21 图22 复制的方法有两种: (1)利用常用Ctrl+C(复制)与Ctrl+V(粘贴)进行。 (2)利用在拖动原图形不松手按右键进行复制。 8、在工作区空白处随便点一下,取消选择,在工具栏中选中“交互式调合工具” ,然后设...
《中国现代广告精品集 [02]》 screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\nCTRL+鼠标滚轮放大或缩小';}" border=0> screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\nCTRL+鼠标滚轮放大或缩小';}" border=0> screen....
12.2.1.非托管环境 如果Hibernat持久层运行在一个非托管环境中,数据库连接通常由Hibernate的连接池机制 来处理。 代码内容 session/transaction处理方式如下所示: //Non-managed environment idiom Session sess = factory.openSession(); Transaction tx = null; try { tx = sess.beginTransaction(); // do some work ... t...

经验教程

707

收藏

54
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部