📄 rangedevision.c
字号:
/* 墱峴偒椞堟偺暘妱 */
/* RangeDevision */
#include <math.h>
#include "Reconst.h"
void RangeDevision(AINF array,double r_min, double r_max,
int *n_depth, double *depths)
{
int i,
n_devision;
double max, rts,
e, error_range, error_max,delta_e,
dist_l;
max=0.0;
dist_l=Distm/Unitlength/SPRATE;
//error_max=0.00000045;//0岆嵎偺嵟戝傪0.1攇挿偵
error_max=0.1;
/*for(i=0;i<array.rnum;i++){
tx=array.rx[i];
ty=array.ry[i];
rts=tx*tx+ty*ty;
if(max<rts) max=rts;
}
rts=max;
*/
rts=array.radRc;
if(rts<array.radTr)rts=array.radTr;
rts=rts*rts;
error_range = rts/2.0*(r_max-r_min)/(r_max*r_min);//兠_range
*n_depth=(int)(error_range/error_max/2.0);//n_depth
if(*n_depth==0)*n_depth=1;//椺奜張棟.0暘妱傪側偔偡
n_devision=*n_depth*2;//嫬奅慄偱嬫愗傜傟偨椞堟偵懳偡傞嫬奅慄偺杮悢偼2攞
delta_e=error_range/(double)n_devision;//嚈兠:嬫愗傜傟偨椞堟撪偺嫋梕斖埻
printf("嫋梕偱偒傞岆嵎偺嵟戝抣兠_max=%f\n",error_max);
printf("椞堟慡懱傪堦偮偺嶲徠嫍棧偱寁嶼偟偨応崌偺岆嵎偺斖埻兠_range=%f\n",error_range);
printf("椞堟偺暘妱悢=%d\n",*n_depth);
printf("椞堟偺嫬奅柺偲嶲徠昞柺偱嬫愗傜傟偨椞堟偺屄悢n_division=%d\n",n_devision);
printf("椞堟偺嫬奅柺偲嶲徠昞柺偱嬫愗傜傟偨椞堟偺岆嵎偺斖埻嚈兠=%f\n",delta_e);
for(i=1;i<n_devision;i++){
e=rts/2.0/r_min - delta_e*((double)i);
depths[i]=floor(rts/2.0/e-dist_l)+dist_l;//R_min偺柺傪0斣栚偲偟偰悢偊偨i斣栚偺柺傑偱偺嫍棧
//2.0/e-dist_l+di
printf("R_min偐傜i斣栚偺椞堟傑偱偺嫍棧=%lf\n",depths[i]);
}
depths[0]=r_min;
depths[n_devision]=r_max;
for(i=0;i<=n_devision;i++){
printf("depths[%d]=%g\n",i,depths[i]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -