小编Ron*_*son的帖子

如何将一组重叠范围划分为非重叠范围?

假设你有一组范围:

  • 0 - 100:'a'
  • 0 - 75:'b'
  • 95 - 150:'c'
  • 120 - 130:'d'

显然,这些范围在某些点重叠.您如何剖析这些范围以生成非重叠范围列表,同时保留与其原始范围相关的信息(在这种情况下,范围后面的字母)?

例如,运行算法后的上述结果将是:

  • 0 - 75:'a','b'
  • 76 - 94:'a'
  • 95 - 100:'a','c'
  • 101 - 119:'c'
  • 120 - 130:'c','d'
  • 131 - 150:'c'

python algorithm math range rectangles

10
推荐指数
2
解决办法
3586
查看次数

Pygame和blitting:白色=灰色?

我正在使用pygame(1.9.0rc3,虽然这也发生在1.8.1中)来创建热图.为了构建热图,我使用了一个小的24位11x11px点PNG图像,白色背景和非常低不透明度的灰色点在边缘处完全停止:

点图像http://img442.imageshack.us/img442/465/dot.png

点周围的区域是完美的白色,#fffff,应该是.但是,当我使用pygame使用BLEND_MULT将图像多次blit到新表面时,会出现一个灰色方块,好像点背景不是完美的白色,这没有意义.

以下代码以及包含的图像可以重现这一点:

import os
import numpy
import pygame

os.environ['SDL_VIDEODRIVER'] = 'dummy'
pygame.display.init()
pygame.display.set_mode((1,1), 0, 32)

dot_image = pygame.image.load('dot.png').convert_alpha()

surf = pygame.Surface((100, 100), 0, 32)
surf.fill((255, 255, 255))
surf = surf.convert_alpha()

for i in range(50):
    surf.blit(dot_image, (20, 40), None, pygame.BLEND_MULT)    

for i in range(100):
    surf.blit(dot_image, (60, 40), None, pygame.BLEND_MULT)      

pygame.image.save(surf, 'result.png')
Run Code Online (Sandbox Code Playgroud)

运行代码时,您将看到以下图像:

混合后产生的图像http://img263.imageshack.us/img263/4568/result.png

有这种情况发生的原因吗?我该如何解决这个问题?

python pygame imaging image

5
推荐指数
1
解决办法
855
查看次数

标签 统计

python ×2

algorithm ×1

image ×1

imaging ×1

math ×1

pygame ×1

range ×1

rectangles ×1