JS:如何通过算法突出显示 x/y 坐标的菱形选择?
如果给定一个创建 nxn 瓷砖贴图的数组数组,是否有一种方法可以循环遍历算法来突出显示形成菱形形状的瓷砖? (关键问题不是对其进行硬编码,因此它可以适用于任何尺寸的地图)
例如:如果地图是 5x5 的图块,如下所示:
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
算法如何突出显示菱形形状,如下所示:
XXOXX
XOOOX
OOOOO
XOOOX
XXOXX
If given an array of arrays creating an n x n map of tiles, is there a way to loop through an algorithm that would highlight tiles which form a diamond shape? (the key problem is not to hardcode it, so it could work for any sized map)
For example: if the map was 5x5 tiles like so:
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
How could an algorithm highlight a diamond shape like so:
XXOXX
XOOOX
OOOOO
XOOOX
XXOXX
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我知道这是一个老话题,但我想我刚刚找到了最好的方法。
如果 cX,cY 是钻石的中心,r 是“半径”(不是直径),则在循环中使用此条件:
因此 cX=2, cY=2, r=3 将绘制
现在您可以设置 cX 和 cY到您的鼠标位置并使用 r 增加/减少菱形大小。
I know this is an old topic but I think I just figured out the best method.
If cX,cY is the center of the diamond and r is the "radius" (not the diameter) use this condition in your loop:
so cX=2, cY=2, r=3 would draw
Now you can set cX and cY to your mouse position and increase/descrease the diamond size using r.
[工作示例]
请注意,您尚未定义预期的偶数的行为
[Working example]
Please note that you haven't defined the expected behavior for even numbers
>>>示例:(9x9 数组)
=>输出:
>> Example: (9x9 array)
=> Output: