求C、C++等值线填充源代码?拜托各位了 3Q

 我来答
天无琼3
2014-09-02 · 超过68用户采纳过TA的回答
知道答主
回答量:140
采纳率:100%
帮助的人:61.9万
展开全部
#define MAXX 50 #define MAXY 50 #include <stdio.h> #include <stdlib.h> #include <alloc.h> #include <conio.h> #include <graphics.h> #include <string.h> /*================== 用趋势面加权最小二乘法计算网点高程制============ =======================*/ #include <conio.h> #include <stdio.h> #include <math.h> int CN1,CN2,NP1; /*-----CN1,CN2为网点间距,NP1为测量点个数- -----*/ int X0,Y0; /*-----X0,Y0为网格起点坐标------*/ void wzjs(int n,int m,float *x,float *y,float *z,float **bb) { int i,j,k,k0,k1,n0,hh=0; double cnum,x1,x2,y1,y2,xt,yt,xxt, yyt,xyt,zt,A,B,c; double e[10][10]={0,u[10]={0; for(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;k<NP1;k++) /*-----高斯法计算曲面方程值并计算网格点值------ -*/ { hh=0; if(A==*(x+k)&&B==*(y+k)) { *(*(bb+i)+j)=*(z+k); hh=1; break; x1=*(x+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[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; 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;k<n0;k++) for(k0=k+1;k0<n0+1;k0++) for(k1=k+1;k1<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;k0<n0+1;k0++) c=c+e[k][k0]*u[k0]; u[k]=(e[k][n0+1]-c)/e[k][k]; *(*(bb+i)+j)=u[1]+A*(u[2]+B*u[ 4]+A*u[5])+B*(u[3]+B*u[6]);

求采纳
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式