#include #include #include #include #include #include "stdio.h" #include #include #include "list" #define MAX 1e+30 #define pi (4.0*atan(1.0)) #define min(a,b)(((a) < (b)) ? (a) : (b)) #define OUTPUT "-o" #define AFFECTION "-a" #define PARA "-p" #define BOLDRED "\033[1m\033[31m" #define RESET "\033[0m" using namespace std; struct Tess { char name[1024]; int id; double xmin,xmax,ymin,ymax,r,R; }; typedef list TessList; struct point3d { double x,y,z; }; point3d SCS2CCS(double thet,double phi,double radius)//球坐标转直角坐标 { point3d v; v.x = radius*sin((0.5-thet/180.0)*pi)*cos((2.0+phi/180.0)*pi); v.y = radius*sin((0.5-thet/180.0)*pi)*sin((2.0+phi/180.0)*pi); v.z = radius*cos((0.5-thet/180.0)*pi); return v; } void check(point3d &v) { if(abs(v.x)<1e-8){ v.x=0; } if(abs(v.y)<1e-8){ v.y=0; } if(abs(v.z)<1e-8){ v.z=0; } } void subrutine(int order,ofstream& outfile,double r,double R,double longi_min,double longi_max,double lati_min,double lati_max) { double affection; double c_length; double depth; double min_length=MAX; point3d posi; depth = R - r; min_length = min(depth,min_length); c_length = (lati_max-lati_min)*pi*r/180; min_length = min(c_length,min_length); c_length = (longi_max-longi_min)*r*cos(lati_max*pi/180.0)*pi/180; min_length = min(c_length,min_length); affection = min_length/10; //string meshsize_name = to_string(order); //outfile<<"lc"< "<