//这里我们尝试生存一个简单的网格。我们只生成一个正方形的网格,即 //n*n*n的网格 #pragma once #include"../display/getindata.h" #include"../geo/geodisplay.h" #include"../mesh/AddObj.h" #include"../display/ReadandWrite.h" #include"../display/Struct3d.h" #include"../generate/PlaneRollingBoundary.h" class CNTMesh{ //生成网格 public: Struct3d meshoutput[MESHN][MESHN][MESHN]; map> mesh[MESHN][MESHN][MESHN]; int startnum[MESHN][MESHN][MESHN]; void getmesh(){ Interface meshinput[MESHN][MESHN][MESHN]; for(int i=0;i x,vector y,print3d& result,Vector3d tmpVec,int m1,int m2,Vector3d xcenter,Vector3d ycenter){ Matrix equation(tmpVec); FullPivLU> solve(equation); auto vertica0=(Matrix(solve.kernel()).col(0)).normalized(); auto vertica1=tmpVec.cross(vertica0).normalized(); double angle,minangle=100; int l1,l2; for(int i=0;i-s2) { if(compare(i,s1,-j,s2)){ i++; result.f.push_back(Vector3i(x[getmod(i+l1,s1)],x[getmod(i+l1-1,s1)],y[getmod(l2+j,s2)])); } else{ j--; result.f.push_back(Vector3i(x[getmod(i+l1,s1)],y[getmod(l2+j,s2)],y[getmod(l2+j+1,s2)])); } } if(j==-s2){ while (i-s2) { j--; result.f.push_back(Vector3i(x[getmod(i+l1,s1)],y[getmod(l2+j,s2)],y[getmod(l2+j+1,s2)])); } } } };