首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coding
V2EX  ›  算法

找到一个二重循环遍历某个点的上下左右四个临近点的方法

  •  
  •   mskf · 58 天前 · 1032 次点击
    这是一个创建于 58 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在同一个循环中,也可以遍历四个斜着的临近点

    for i in [-1,1]:
        for j in [-1,1]:
        	# top,left,right,bottom
        	nx, ny = x+(i+j)//2,y+(i-j)//2
            
            # corners
            nx, ny = x+i,y+j
    

    以前都是写死 x+1,y x,y+1... 然后遍历,或者用三角函数循环角度,感觉上面写更简洁

    3 回复  |  直到 2019-10-18 00:12:11 +08:00
        1
    ZRS   58 天前
    巧妙
        2
    taotaodaddy   58 天前 via Android
    棒棒
        3
    mskf   58 天前
    如果在其他语言中使用 for I = 0 to 1 遍历,只需要在开头加上 i=1-2*I, j=1-2*J 就可以了,下面完全一样
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2263 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 10:45 · PVG 18:45 · LAX 02:45 · JFK 05:45
    ♥ Do have faith in what you're doing.