
怎样在gambit中对计算区域进行分块并划分网格
1个回答
展开全部
1)计算矩形的左上和右下顶点在哪两个格子里(格子数组里的位置)
2)由这二顶点所在的格子就可定出矩形在格子数组的横向纵向的范围
计算一点在哪个格子的算法:
int n0x,n0y,n1x,n1y;//(n0x,n0y)为左上格子在数组中的位置,(n1x,n1y)为右下
//设矩形左上坐标为(X0,Y0)
n0x=int(X0);//强制转换为整数实际是丢掉小数部分,必然小于等于原数
n0x=n0x/10;//找到格子横向位置
n0y=int(Y0);
n0y=n0y/10;//找到格子纵向位置
//右下(X1,Y1)
n1x=int(X1);
if( X1-n1x>0. ) n1x+=1; //这里要考虑X1小数部分为0这种情况
n1x= n1x/10; //找到格子横向位置
n1y=int(Y1);
if( Y1-n1y>0. ) n1y+=1; //这里要考虑Y1小数部分为0这种情况
n1y= n1y/10; //找到格子纵向位置
//到这里算得横向n00~n10,纵向n01~n11的格子被矩形占据
2)由这二顶点所在的格子就可定出矩形在格子数组的横向纵向的范围
计算一点在哪个格子的算法:
int n0x,n0y,n1x,n1y;//(n0x,n0y)为左上格子在数组中的位置,(n1x,n1y)为右下
//设矩形左上坐标为(X0,Y0)
n0x=int(X0);//强制转换为整数实际是丢掉小数部分,必然小于等于原数
n0x=n0x/10;//找到格子横向位置
n0y=int(Y0);
n0y=n0y/10;//找到格子纵向位置
//右下(X1,Y1)
n1x=int(X1);
if( X1-n1x>0. ) n1x+=1; //这里要考虑X1小数部分为0这种情况
n1x= n1x/10; //找到格子横向位置
n1y=int(Y1);
if( Y1-n1y>0. ) n1y+=1; //这里要考虑Y1小数部分为0这种情况
n1y= n1y/10; //找到格子纵向位置
//到这里算得横向n00~n10,纵向n01~n11的格子被矩形占据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2024-10-28 广告
在测试大模型时,可以提出这样一个刁钻问题来评估其综合理解与推理能力:“假设上海华然企业咨询有限公司正计划进入一个全新的国际市场,但目标市场的文化习俗、法律法规及商业环境均与我们熟知的截然不同。请在不直接参考任何外部数据的情况下,构想一套初步...
点击进入详情页
本回答由上海华然企业咨询提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询