书中一段代码的注释

取自《Focus On 3D Terrain Programming》中的一段:

//--------------------------------------------------------------
// Name:              CTERRAIN::FilterHeightBand - private
// Description:       Apply the erosion filter to an individual
//                          band of height values
// Arguments:       -fpBand: the band to be filtered
//                         -iStride: how far to advance per pass
//                         -iCount: Number of passes to make
//                         -fFilter: the filter strength
// Return Value:     None
//--------------------------------------------------------------
void CTERRAIN::FilterHeightBand(float* fpBand, int iStride, int iCount, float fFilter )
{
  float v= fpBand[0];
  int j  = iStride;
  int i;

  //go through(遍历) the height band and apply the erosion filter
  for( i=0; i<iCount-1; i++ )
  {
    fpBand[j]= fFilter*v + ( 1-fFilter )*fpBand[j];

    v = fpBand[j];
    j+= iStride;
  }
}

滤波的一段代码,其中iStride就是步长,fFilter就是系数,为此,可以把函数参数名改为以下名称似乎更能说明函数功能:

void FilterHeightBand(float* fpBand,int iStep,int iCount,float fFilterFactor)

时间: 2024-11-02 22:20:39

书中一段代码的注释的相关文章

《Focus On 3D Terrain Programming》中一段代码的注释三

取自<Focus On 3D Terrain Programming>中的一段: 1 //-------------------------------------------------------------- 2 // Name: CIMAGE::LoadUncompressedTGA - private 3 // Description: Load an uncompressed targa (TGA) 4 // Arguments: None 5 // Return Value: A

《Focus On 3D Terrain Programming》中一段代码的注释二

取自<Focus On 3D Terrain Programming>中的一段: 1 bool CTERRAIN::MakeTerrainFault( int iSize, int iIterations, int iMinDelta, int iMaxDelta, float fFilter ) 2 { 3 ...... 4 ............. 5 for( iCurrentIteration=0; iCurrentIteration<iIterations; iCurrent

bootstrap 中这段代码 使bundles 失败

_:-ms-fullscreen, :root input[type="date"], _:-ms-fullscreen, :root input[type="time"], _:-ms-fullscreen, :root input[type="datetime-local"], _:-ms-fullscreen, :root input[type="month"] { line-height: 1.42857143; }

java中代码的注释和快捷键

java中代码的注释和快捷键 添加必要的注释,对一个有责任心.有道德模范的前端必须具备的好习惯, 可以大大提高代码的可维护性.可读性. java代码注释快捷键:ctrl+shift+/首先熟悉一下html.css.js的注释的写法:1.HTML注释语法: <!--注释的内容--> 2.css注释语法 /* 注释内容 */ /* ----------文字样式开始---------- */ 3.javaScript注释 //注释内容 /*注释内容*/ 接下来是对注释在这几种代码中使用的位置,如何写

java中 synchronized 的使用,确保异步执行某一段代码。

最近看了个有关访问网络url和下载的例子,里面有几个synchronized的地方,系统学习下,以下内容很重要,记下来. Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行.另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块. 二.然而,当一个线程访问object的一个synchroniz

viewpager 自动无限循环 这段代码移到你的程序中就可以用了

本程序需要懂得viewpager的基础知识,也就是说你能够自己写出一个手动滑动的viewpager,下面我将附带加小圆点的知识 那么我们回顾一下图片轮转的基础知识,如果你已经对viewpager很熟悉了就不用看了,浪费时间 1.viewpager是在v4兼容报里面的,使用控件时请带上报名 2.数据来源用list存放,我这里用的是textview做的小圆点list<textview>,layout做的单张幻灯片list<view>,将xml文件inflate成为view,View.i

如何在Sql2008中获取表字段属性和注释?

如何在Sql2008中获取表字段属性和注释? select b.[value] from sys.columns a left join sys.extended_properties b on a.object_id=b.major_id and a.column_id=b.minor_id inner join sysobjects c on a.column_id=c.id and a.[name]='列名' and c.[name]='表名' SELECT 表名=case when a.

c# winform中的一段代码赏析

我遇到了一个bug,是客户测试我们的产品,报出来的,而且有异常信息文件,这对于定位问题,很有帮助. 我找到源码看了下,bug还无法重现.于是我随便点点客户端,经过了几次调试,结果报出错误来了.客户端界面如下: 代码如下: 1 /// <summary> 2 /// 选定项发生改变事件 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name=&quo

秦晓波著的编写高质量代码-改善Java程序的151个建议一书中的线程解释错误.

位置: 建议127: Lock与synchronized是不一样的 首先在概念上纠正这一篇内容: 援引Java源码中关于ReentrantLock的开篇说明: * A reentrant mutual exclusion {@link Lock} with the same basic * behavior and semantics as the implicit monitor lock accessed using * {@code synchronized} methods and st