/*@function ******************************************************************
功能:分离数算发;
参数:Array:要分离的数组;Distance:按多少距离分离数组;length:数组长度;
MatchHead:开始位置;
返回值:无
抛出异常:无;
备注:无;
****************************************************************************/
- void CVtronGisCtrl::SeparateArray( double *Array ,double Distance ,long length ,int MatchHead)
- {
- int last; int back = 0; ArrayList.clear();//先清空
- for (int loop = MatchHead; loop < length; loop++ )
- {
- last = length;//将length的值赋给last(防修改)
- back = loop+1;
- if (Array[loop+1]-Array[loop] > Distance )//判断差值是否大于Distance
- {
- if ( back < length )//判断是否最后一个
- {
- ArrayLast = Array[loop];
- MatchHead = loop+1;//下个First的位置
- if (ArrayFirst != 0)//判断ArrayFirst是否有值,无值不保存ArrayLast,直接退出
- {
- ArrayList.push_back(ArrayFirst);//将ArrayFirst的值存入listData ArrayList.push_back(ArrayLast); //将ArrayLast的值存入listData ArrayFirst = 0.0;//清0 ArrayLast = 0.0;//清0
- }
- }
- }
- else
- {
- if (loop == last-2)//判断是否最后一对比较,如果是最后一队,直接把最后一个数赋值为last
- {
- ArrayFirst = Array[MatchHead];
- ArrayLast = Array[last-1];
- ArrayList.push_back(ArrayFirst);
- ArrayList.push_back(ArrayLast);
- ArrayFirst = 0.0;//清0 ArrayLast = 0.0;//清0
- }
- else
- {
- ArrayFirst = Array[MatchHead];//保存ArrayFirst
- }
- }
- }
- }