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

如何在Cython中为多态自旋场显示自定义彩色图像而非仅黑白图

自旋场多态着色显示实现

前置依赖

确保已导入所需库:

import numpy as np
from PIL import Image

注:原代码存在函数名笔误,定义时的display__spin_field多了一个下划线,和调用时的display_spin_field不匹配,修正后即可正常运行。

方案1:0自旋态显示为红色,±1保留原有黑白效果

该方案兼容原有显示习惯,仅新增的0态用高对比度红色标识:

def display_spin_field(field):
    # 初始化HxWx3的RGB数组,默认值为全黑
    rgb_arr = np.zeros((field.shape[0], field.shape[1], 3), dtype=np.uint8)
    # 自旋值为1:设为白色
    rgb_arr[field == 1] = [255, 255, 255]
    # 自旋值为0:设为红色
    rgb_arr[field == 0] = [255, 0, 0]
    # 自旋值为-1:保持黑色,无需额外赋值
    return Image.fromarray(rgb_arr)

# 调用示例
field = spin_field(200,200)
display_spin_field(field)

方案2:三种自旋态分别用RGB三原色完全区分

如果需要三个状态辨识度拉满,可分别对应不同基础色,示例映射规则如下:

  • -1 → 蓝色
  • 0 → 绿色
  • 1 → 红色
def display_spin_field(field):
    rgb_arr = np.zeros((field.shape[0], field.shape[1], 3), dtype=np.uint8)
    rgb_arr[field == 1] = [255, 0, 0]   # 1对应红色
    rgb_arr[field == 0] = [0, 255, 0]   # 0对应绿色
    rgb_arr[field == -1] = [0, 0, 255]  # -1对应蓝色
    return Image.fromarray(rgb_arr)

如果需要自定义颜色,直接修改对应数组的RGB值即可,取值范围为0-255。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 21:54:03