You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Numpy生成指定外层数值的漩涡(Whirlpool)型图案?

使用Numpy生成漩涡型图案

实现思路

核心是利用切比雪夫距离定义“层数”:每个点到数组中心的切比雪夫距离(横向、纵向距离中的较大值),正好对应该点所在的层——中心距离为0,向外每一层距离加1,最外层的距离就是你设定的最大值。

函数实现

import numpy as np

def create_whirlpool(max_val):
    # 校验输入范围
    if not (1 <= max_val <= 10):
        raise ValueError("最外层数值必须在1-10之间")
    
    # 计算数组边长:中心0到外层max_val,两边各max_val个元素,总长度2*max_val+1
    side_length = 2 * max_val + 1
    center = max_val  # 中心坐标(索引从0开始)
    
    # 生成网格坐标
    x = np.arange(side_length)
    y = np.arange(side_length)
    xx, yy = np.meshgrid(x, y)
    
    # 计算每个点到中心的切比雪夫距离,即为对应层的数值
    whirlpool = np.maximum(np.abs(xx - center), np.abs(yy - center))
    
    return whirlpool

示例使用

# 生成最外层为3的漩涡图案
print(create_whirlpool(3))

输出结果:

[[3 3 3 3 3 3 3]
 [3 2 2 2 2 2 3]
 [3 2 1 1 1 2 3]
 [3 2 1 0 1 2 3]
 [3 2 1 1 1 2 3]
 [3 2 2 2 2 2 3]
 [3 3 3 3 3 3 3]]

关键说明

  • 切比雪夫距离的特性完美匹配“层”的定义,无需复杂循环或条件判断,利用Numpy向量化操作高效生成数组。
  • 输入校验确保最外层数值符合要求,避免无效输入。
  • 数组边长由max_val动态计算,完全无需硬编码,适配不同外层数值需求。

内容的提问来源于stack exchange,提问作者Coding99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 10:50:24