gpt4 book ai didi

macos - 在 OS X 上使用 Pygame 进行错误的颜色抗锯齿

转载 作者:行者123 更新时间:2023-12-04 20:07:14 26 4
gpt4 key购买 nike

我在运行 OS X 的 Macbook Pro(非视网膜)上使用 Pygame。当我尝试创建抗锯齿线或圆时,它似乎以错误的颜色出现。这是一个例子:

import sys, pygame, random, math
import pygame.gfxdraw

black = (0,0,0)
white = (255, 255, 255)
green = (0, 255, 0)


pygame.init()

size = width, height = 800, 600

screen = pygame.display.set_mode(size)

# make the background
background = pygame.Surface(screen.get_size())
#background.fill(black)
background.fill(white)

while 1:
# handle single events
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()

if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE: sys.exit()

screen.blit(background, (0, 0))

pygame.draw.line(screen, green, [0, 0], [50,30], 1)
pygame.draw.aaline(screen, green, [0, 50],[50, 80], True)

pygame.draw.circle(screen, black, [100, 100], 10)
pygame.gfxdraw.aacircle(screen, 100, 130, 10, black)

pygame.display.flip()

这导致:

color example

最佳答案

尽管搜索了 pygame 源代码,但仍然无法找到原因。

不过,我确实设法想出了一个解决方法。实际上是两个。
pygame.gfxdraw 中似乎有一个错误当蓝色的值为 0 时导致 OS X 中颜色困惑的模块。如果您更改 black到 (0,0,1),圆已经看起来好多了,但仍然有轻微的蓝色调。将其更改为 (0,0,2),它将看起来几乎完全是黑色的。对我来说没什么意义,但它有效。

编辑:这适用于不包含任何蓝色的背景颜色。似乎在包含 >0 蓝色的背景 RGB 上,圆圈至少需要该数量的蓝色来防止错误。例如,要在 (50,50,50) 背景上得到一个黑色 aacircle,我能得到的最接近的方法是使用 (0,0,50) 作为圆。任何较低量的蓝色都会导致明亮的蓝色伪影。

添加蓝色无助于修复 pygame.draw.aaline的行为。这必须是一个单独的错误。但是,pygame.gfxdraw.line也是抗锯齿的。改用该方法,更改 green到(0,255,1),青色线现在将变为绿色。

enter image description here

关于macos - 在 OS X 上使用 Pygame 进行错误的颜色抗锯齿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24208783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com