欢迎来到天天文库
浏览记录
ID:41127624
大小:56.50 KB
页数:18页
时间:2019-08-17
《请各位关心此源码的朋友帮助将其完善》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、请各位关心此源码的朋友帮助将其完善,谢谢,希望大家共同进步。等值线源码如下:#defineMAXX50#defineMAXY50#include#include#include#include#include#include /*==================用趋势面加权最小二乘法计算网点高程制===================================*/#include#include2、tdio.h>#include intCN1,CN2,NP1;/*-----CN1,CN2为网点间距,NP1为测量点个数------*/intX0,Y0;/*-----X0,Y0为网格起点坐标------*/voidwzjs(intn,intm,float *x,float*y,float*z,float**bb){inti,j,k,k0,k1,n0,hh=0;doublecnum,x1,x2,y1,y2,xt,yt,xxt,yyt,xyt,zt,A,B,c;doublee[10][10]={0},u[10]={0};for3、(i=0;i<=n;i++)/*-----列网(X向)------*/{A=X0+i*CN1;for(j=0;j<=m;j++)/*------横网(y向)------*/{B=Y0+j*CN2;for(k=0;k<10;k++){u[k]=0;for(k0=0;k0<10;k0++)e[k][k0]=0;}for(k=0;k4、+k);y1=*(y+k);x2=x1*x1;y2=y1*y1;cnum=(x1-A)*(x1-A)+(y1-B)*(y1-B);cnum=1/cnum;xt=cnum*x1;yt=cnum*y1;xxt=x2*cnum;yyt=y2*cnum;xyt=x1*yt;e[1][1]=e[1][1]+cnum;e[1][2]=e[1][2]+xt;e[1][3]=e[1][3]+yt;e[1][4]=e[1][4]+xyt;e[1][5]=e[1][5]+xxt;e[1][6]=e[1][6]+yyt;e[2][4]=e[2][4]+x2*yt;e5、[2][5]=e[2][5]+x2*xt;e[2][6]=e[2][6]+y2*xt;e[3][6]=e[3][6]+y2*yt;e[4][4]=e[4][4]+x2*yyt;e[4][5]=e[4][5]+x2*xyt;e[4][6]=e[4][6]+y2*xyt;e[5][5]=e[5][5]+x2*xxt;e[6][6]=e[6][6]+y2*yyt;zt=*(z+k)*cnum;u[1]=u[1]+zt;u[2]=u[2]+x1*zt;u[3]=u[3]+y1*zt;u[4]=u[4]+x1*y1*zt;u[5]=u[5]+x2*zt;6、u[6]=u[6]+y2*zt;}if(hh==1)continue;e[2][2]=e[1][5];e[2][3]=e[1][4];e[3][3]=e[1][6];e[3][4]=e[2][6];e[3][5]=e[2][4];e[5][6]=e[4][4];for(k=1;k<6;k++)for(k0=k+1;k0<7;k0++)e[k0][k]=e[k][k0];for(k=1;k<7;k++)e[k][7]=u[k];n0=6;for(k=1;k7、n0+2;k1++)e[k0][k1]=e[k0][k1]-e[k0][k]*e[k][k1]/e[k][k];u[n0]=e[n0][n0+1]/e[n0][n0];for(k=n0-1;k>0;k--){c=0;for(k0=k+1;k08、============*//* 绘制等值线 //*=================
2、tdio.h>#include intCN1,CN2,NP1;/*-----CN1,CN2为网点间距,NP1为测量点个数------*/intX0,Y0;/*-----X0,Y0为网格起点坐标------*/voidwzjs(intn,intm,float *x,float*y,float*z,float**bb){inti,j,k,k0,k1,n0,hh=0;doublecnum,x1,x2,y1,y2,xt,yt,xxt,yyt,xyt,zt,A,B,c;doublee[10][10]={0},u[10]={0};for
3、(i=0;i<=n;i++)/*-----列网(X向)------*/{A=X0+i*CN1;for(j=0;j<=m;j++)/*------横网(y向)------*/{B=Y0+j*CN2;for(k=0;k<10;k++){u[k]=0;for(k0=0;k0<10;k0++)e[k][k0]=0;}for(k=0;k4、+k);y1=*(y+k);x2=x1*x1;y2=y1*y1;cnum=(x1-A)*(x1-A)+(y1-B)*(y1-B);cnum=1/cnum;xt=cnum*x1;yt=cnum*y1;xxt=x2*cnum;yyt=y2*cnum;xyt=x1*yt;e[1][1]=e[1][1]+cnum;e[1][2]=e[1][2]+xt;e[1][3]=e[1][3]+yt;e[1][4]=e[1][4]+xyt;e[1][5]=e[1][5]+xxt;e[1][6]=e[1][6]+yyt;e[2][4]=e[2][4]+x2*yt;e5、[2][5]=e[2][5]+x2*xt;e[2][6]=e[2][6]+y2*xt;e[3][6]=e[3][6]+y2*yt;e[4][4]=e[4][4]+x2*yyt;e[4][5]=e[4][5]+x2*xyt;e[4][6]=e[4][6]+y2*xyt;e[5][5]=e[5][5]+x2*xxt;e[6][6]=e[6][6]+y2*yyt;zt=*(z+k)*cnum;u[1]=u[1]+zt;u[2]=u[2]+x1*zt;u[3]=u[3]+y1*zt;u[4]=u[4]+x1*y1*zt;u[5]=u[5]+x2*zt;6、u[6]=u[6]+y2*zt;}if(hh==1)continue;e[2][2]=e[1][5];e[2][3]=e[1][4];e[3][3]=e[1][6];e[3][4]=e[2][6];e[3][5]=e[2][4];e[5][6]=e[4][4];for(k=1;k<6;k++)for(k0=k+1;k0<7;k0++)e[k0][k]=e[k][k0];for(k=1;k<7;k++)e[k][7]=u[k];n0=6;for(k=1;k7、n0+2;k1++)e[k0][k1]=e[k0][k1]-e[k0][k]*e[k][k1]/e[k][k];u[n0]=e[n0][n0+1]/e[n0][n0];for(k=n0-1;k>0;k--){c=0;for(k0=k+1;k08、============*//* 绘制等值线 //*=================
4、+k);y1=*(y+k);x2=x1*x1;y2=y1*y1;cnum=(x1-A)*(x1-A)+(y1-B)*(y1-B);cnum=1/cnum;xt=cnum*x1;yt=cnum*y1;xxt=x2*cnum;yyt=y2*cnum;xyt=x1*yt;e[1][1]=e[1][1]+cnum;e[1][2]=e[1][2]+xt;e[1][3]=e[1][3]+yt;e[1][4]=e[1][4]+xyt;e[1][5]=e[1][5]+xxt;e[1][6]=e[1][6]+yyt;e[2][4]=e[2][4]+x2*yt;e
5、[2][5]=e[2][5]+x2*xt;e[2][6]=e[2][6]+y2*xt;e[3][6]=e[3][6]+y2*yt;e[4][4]=e[4][4]+x2*yyt;e[4][5]=e[4][5]+x2*xyt;e[4][6]=e[4][6]+y2*xyt;e[5][5]=e[5][5]+x2*xxt;e[6][6]=e[6][6]+y2*yyt;zt=*(z+k)*cnum;u[1]=u[1]+zt;u[2]=u[2]+x1*zt;u[3]=u[3]+y1*zt;u[4]=u[4]+x1*y1*zt;u[5]=u[5]+x2*zt;
6、u[6]=u[6]+y2*zt;}if(hh==1)continue;e[2][2]=e[1][5];e[2][3]=e[1][4];e[3][3]=e[1][6];e[3][4]=e[2][6];e[3][5]=e[2][4];e[5][6]=e[4][4];for(k=1;k<6;k++)for(k0=k+1;k0<7;k0++)e[k0][k]=e[k][k0];for(k=1;k<7;k++)e[k][7]=u[k];n0=6;for(k=1;k7、n0+2;k1++)e[k0][k1]=e[k0][k1]-e[k0][k]*e[k][k1]/e[k][k];u[n0]=e[n0][n0+1]/e[n0][n0];for(k=n0-1;k>0;k--){c=0;for(k0=k+1;k08、============*//* 绘制等值线 //*=================
7、n0+2;k1++)e[k0][k1]=e[k0][k1]-e[k0][k]*e[k][k1]/e[k][k];u[n0]=e[n0][n0+1]/e[n0][n0];for(k=n0-1;k>0;k--){c=0;for(k0=k+1;k08、============*//* 绘制等值线 //*=================
8、============*//* 绘制等值线 //*=================
此文档下载收益归作者所有