📄 小算法.txt
字号:
/*去除冗余点,这里举对带有连续点的一般情形,以枳沟镇数据为例*/
# include "stdio.h"
# include "math.h"
main()
{static double bx[20],by[20],
ax[20]={3983612.147,
3983635.207,
3983633.399,
3983628.425,
3983638.946,
3983645.917,
3983646.963,
3983664.146,
3983664.747,
3983676.569,
3983669.373,
3983669.887,
3983661.150,
3983637.636,
3983627.336,
3983609.956,
3983561.033,
3983543.008,
3983533.353,
3983518.773
},
ay[20]={693021.471,
693057.223,
693095.237,
693123.295,
693134.922,
693158.844,
693189.367,
693205.206,
693232.038,
693272.162,
693308.685,
693350.352,
693379.674,
693415.529,
693445.166,
693467.715,
693523.123,
693555.337,
693578.531,
693624.649
};
double a1,a2;
int i,j=0;
for (i=0;i<20;i++)
{
a1=(ay[i+1]-ay[i])/(ax[i+1]-ax[i]);
a2=(ay[i+2]-ay[i])/(ax[i+2]-ax[i]);
if(fabs(a1-a2)>=1e-4)
{bx[j+1]=ax[i+1];
by[j+1]=ay[i+1];
j=j+1;
}
else
{bx[j+1]=ax[i+2];
by[j+1]=ay[i+2];
}
}
bx[0]=ax[0];by[0]=ay[0];
for (i=0;i<j;i++)
{printf("bx[%d]= %.3f ",i,bx[i]);
printf("by[%d]= %.3f ",i,by[i]);
printf ("\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -