tmp update
This commit is contained in:
parent
946cffbb15
commit
cdc982dd54
@ -471,25 +471,25 @@ namespace gctl
|
||||
* @param[in] dlon lon间隔
|
||||
* @param[in] dlat lat间隔
|
||||
* @param[in] rad 半径值
|
||||
* @param[in] cor 网格起始位置
|
||||
*/
|
||||
template <typename T>
|
||||
void get_grid_point3s(array<point3s<T>> &out_ps, T lonmin, T lonmax, T latmin,
|
||||
T latmax, T dlon, T dlat, T rad)
|
||||
void grid_points_2d(array<point3s<T>> &out_ps, T lonmin, T lonmax, T latmin,
|
||||
T latmax, T dlon, T dlat, T rad, matrix_corner_e cor = BtmLeft)
|
||||
{
|
||||
if (lonmin >= lonmax || latmin >= latmax || lonmin+dlon>lonmax || latmin+dlat>latmax)
|
||||
if (lonmin >= lonmax || latmin >= latmax ||
|
||||
lonmin + dlon > lonmax || latmin + dlat > latmax ||
|
||||
dlon <= 0 || dlat <= 0)
|
||||
{
|
||||
throw invalid_argument("Invalid range parameters. From get_grid_point3s(...)");
|
||||
throw invalid_argument("[gctl::grid_points_2d] Invalid parameters.");
|
||||
}
|
||||
|
||||
if (dlon <= 0 || dlat <= 0)
|
||||
{
|
||||
throw invalid_argument("Invalid interval parameters. From get_grid_point3s(...)");
|
||||
}
|
||||
|
||||
int lonnum = floor((lonmax-lonmin)/dlon) + 1;
|
||||
int latnum = floor((latmax-latmin)/dlat) + 1;
|
||||
int lonnum = round((lonmax-lonmin)/dlon) + 1;
|
||||
int latnum = round((latmax-latmin)/dlat) + 1;
|
||||
|
||||
out_ps.resize(lonnum*latnum);
|
||||
if (cor == BtmLeft)
|
||||
{
|
||||
for (int j = 0; j < latnum; j++)
|
||||
{
|
||||
for (int i = 0; i < lonnum; i++)
|
||||
@ -499,6 +499,19 @@ namespace gctl
|
||||
out_ps.at(j*lonnum+i).rad = rad;
|
||||
}
|
||||
}
|
||||
}
|
||||
else // cor == TopLeft
|
||||
{
|
||||
for (int j = 0; j < latnum; j++)
|
||||
{
|
||||
for (int i = 0; i < lonnum; i++)
|
||||
{
|
||||
out_ps.at(j*lonnum+i).lon = lonmin + dlon*i;
|
||||
out_ps.at(j*lonnum+i).lat = latmax - dlat*j;
|
||||
out_ps.at(j*lonnum+i).rad = rad;
|
||||
}
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user