如上图
假设1-200格时1号资源带
假设201-400格时2号资源带
...
设定矩阵的大小,判断一个坐标在矩阵的第几个资源范围
矩阵相当于一圈一圈的,判断在哪个圈圈上。

最近喜欢用浏览器控制台直接跑JS代码,将这个代码直接贴到浏览器控制台,即可调试(谷歌浏览器快捷键 ctrl+shift+j)

//配置 圈的大小范围
var configArr = [];
configArr.push({id: 1, min: 1, max: 200}); //1-200格视为第一圈
configArr.push({id: 2, min: 201, max: 400}); //201-400格视为第二圈
configArr.push({id: 3, min: 401, max: 500});
configArr.push({id: 4, min: 501, max: 550});var len = configArr.length; //配置数量var ARR_MAX = 1200; //矩阵最大行列数//判断在范围内
function isInRange(min, max, x, y) {var xInRange = (x >= min && x <= max) || (x >= (ARR_MAX - max + 1) && x <= (ARR_MAX - min + 1));var yExt = (y >= min && y <= (ARR_MAX - min + 1)); //扩展位置var boolX = xInRange && yExt;var yInRange = (y >= min && y <= max) || (y >= (ARR_MAX - max + 1) && y <= (ARR_MAX - min + 1));var xExt = (x >= min && x <= (ARR_MAX - min + 1));var boolY = yInRange && xExt;var inRange = boolX || boolY;return inRange
}//获取坐标在哪个资源带(哪个圈上)
function getConfigId(x, y) {for (var idx = 0; idx < len; idx++) {var tmpInRange = isInRange(configArr[idx].min, configArr[idx].max, x, y);if (tmpInRange == true) {return configArr[idx].id;}}return 0;
}//执行测试方法
function initTest() {for (var i = 1; i <= ARR_MAX; i++) {for (var j = 1; j <= ARR_MAX; j++) {var idx = getConfigId(i, j);if (idx == 0) {console.log("x,y" + i + "," + j)}objJS[idx] = objJS[idx] + 1}}
}//执行测试方法
initTest();

转载于:https://www.cnblogs.com/tangyongle/p/7499582.html

判断坐标在矩阵的哪个(资源带)圈范围相关推荐

  1. 用matlab判断两个球是否相交,判断两个矩阵相交

    判断两个矩阵相交 最近在回顾hihocoder上自己做过的题,看到清理海报这道题目,http://hihocoder.com/problemset/problem/1273?sid=707390当初比 ...

  2. 判断坐标点是否处于某个范围内(射线法)

    判断坐标点是否处于某个范围内(射线法) Vue Java 声明 Vue /*** 判断点是否多边形内* @param {Point} point 点对象* @param {Polyline} poly ...

  3. 通过调用API函数实现的无边框窗体的拖拽,比判断坐标更快捷

    在winform程序中,有时会选择边框设计会none,但是这样就不能拖拽窗体移动 解决方案有二: 1,判断坐标控制拖拽 2.利用API函数, 下面介绍利用API函数,方便,快捷 #region 移动无 ...

  4. 汇编-简单的条件转移指令应用-附例子:判断坐标所在象限

    在汇编分支程序设计中,条件转移指令扮演着很重要的角色 首先让我们认识一下简单的条件转移指令: 这些指令都是通过flag寄存器中的标志位进行判断的 一般情况下使用CMP指令来影响标志位结合这些指令执行 ...

  5. MATLAB——判断两个矩阵的元素是否完全相同

    1 致谢 感谢网友Inside_Zhang的帮助, 链接如下: https://blog.csdn.net/lanchunhui/article/details/50717400 2 前言 今天在学习 ...

  6. matlab 判断两个矩阵是否相等

    数学意义的相等 all(A(:) == B(:)) isequal(A, B) 但须注意的是:B = A,未必能保证 isequal(A, B)返回真,因为如果 A 中包含NaN,因为按照定义,NaN ...

  7. 15、【易混淆概念集】-第九章 职责分配矩阵(RAM) 活动资源估算、资源分解结构 获取资源 资源/项目/自然日历区别 虚拟团队、集中办公、认可与奖励 塔克曼阶梯理论 冲突管理 权力类型

    本讲主要介绍PMBOK第九章中的重要知识点,帮助你进一步理解. 本节目录 一.职责分配矩阵(RAM) 二.活动资源估算.资源分解结构 三.获取资源 四.预分派 五.资源/项目/自然日历区别 六.虚拟团 ...

  8. MNI坐标,world坐标和矩阵坐标互相转换

    首先矩阵坐标和世界坐标的变换公式需要知道两个信息,图像原点坐标(origin)和空间分辨率(spacing) 假设矩阵坐标(x1,y1,z1),世界坐标(x2,y2,z2),原点坐标(x0,y0,z0 ...

  9. 阿里的27个项目资源带你走进Github世界!

    阿里的27个项目资源带你走进Github世界! 1.设计语言 & 前端框架 Ant Design https://github.com/ant-design/ant-design ★ 1488 ...

  10. 科普:矩阵乘法是怎么做的?怎么判断两个矩阵是否可以相乘?不使用行列式...

    首先判断第一个矩阵的列数是否=第二个矩阵的行数,可以既继续,不可以则无解 将矩阵2的第一列横过来(第一个数在前面),然后分别乘到矩阵1的第一行上去,所有数对应相乘后相加,得到答案的第一行第一列 然后矩 ...

最新文章

  1. poj2438(哈密顿回路)
  2. stm32f103zet6linux,stm32f103zet6定时器详解及应用
  3. 裂变实操:1个模型+4个步骤,教你打造流量的自循环系统
  4. 2020-07-03 CVPR2020 i3DV论文讨论(2) 笔记
  5. Android4.1 onTouchEvent分析 (选字模式等)
  6. ACNet论文阅读笔记
  7. Weak Pair HDU - 5877 树状数组+离散化+DFS遍历
  8. codevs5429 多重背包【多重背包+单调队列】
  9. 疫情相关电信诈骗涉案金额超3.51亿元,谨防这四类骗局!
  10. python与财务工作总结_Python小结1
  11. linux进程管理内存管理,Linux专业知识四:Linux系统进程管理及查看内存
  12. 锁的等级:方法锁、对象锁、类锁。
  13. 分布式集群中如何保证线程安全?
  14. 计算机自举过程是什么问题,操作系统原理(一)——自举过程
  15. UEFI 双系统+双硬盘安装
  16. 2019京东全球科技探索者大会议程抢先曝光!
  17. dns找不到服务器,“找不到服务器或DNS错误”,如何调整?
  18. 新冠免疫细胞培养、转染、核酸分析整合解决方案
  19. 有自学能力的人,赚钱极其简单—来福宝盒
  20. android studio中 实战演练——天气预报 程序

热门文章

  1. 【渝粤教育】国家开放大学2018年春季 0248-22T电工电子技术 参考试题
  2. 聚类分析-K均值matlab(一)
  3. 如何使用VUE做组件化开发 -- 思考篇
  4. JavaScript Date时间对象
  5. mybatis配置文件祥解(mybatis.xml)
  6. Emulator Error: Could not load OpenGLES emulation library: Could not load DLL!
  7. NYOJ-769乘数密码,逆元解法;
  8. Ionic在Android上部署app步骤
  9. 关情纸尾-----Quartz2D-简介
  10. Windows 下安装Python包(Numpy)的错误:Unable to find vcvarsall.bat