相关疑难解决方法(0)

绘制实心圆的快速算法?

我正在使用Bresenham的圆形算法进行快速圆绘制.但是,我也希望(应用户的要求)画一个圆圈.

有这样快速有效的方法吗?布雷森汉姆沿袭同样的路线?

我使用的语言是C.

c algorithm graphics geometry

46
推荐指数
7
解决办法
7万
查看次数

致命的Python错误:无法从堆栈溢出中恢复.在洪水填充期间

我走到了尽头,经过过度(不成功)谷歌搜索后,我需要帮助.

我正在构建一个简单的PyQt4 Widget,它位于一个60x80正方形的网格中,每个正方形被初始化为None.如果用户单击该框,则会根据此列表定义的左键单击次数更改颜色:

self.COLORS=[
        (0, 0, 255),        #WATER
        (255, 210, 128),    #SAND
        (0, 128, 0),       #GREEN
        (255, 255, 0),    #YELLOW
        (255, 165, 0),    #ORANGE
        (255, 0, 0)          #RED

]
Run Code Online (Sandbox Code Playgroud)

如果用户右键单击,则使用常见的递归填充算法泛洪填充区域.这适用于小空间,但是如果空间足够大,程序会因错误而失败,Fatal Python error: Cannot recover from stack overflow.我不知道如何解决这个问题,也许洪水填充不是递归的?

所有正方形和后续颜色代码都存储在其中,self.cells因此通过设置self.cells[(y,x)]=1将单元格设置(y,x)Sand颜色.

这是整个程序.

import sys
from PyQt4 import QtGui, QtCore

class Example(QtGui.QWidget):

    def __init__(self, cell_size=10, swidth=800, sheight=600):
        QtGui.QWidget.__init__(self)
        self.resize(swidth,sheight)

        self.cell_size = cell_size
        self.height = sheight
        self.width = swidth
        self.columns = self.width // …
Run Code Online (Sandbox Code Playgroud)

python stack-overflow pyqt python-3.x

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

algorithm ×1

c ×1

geometry ×1

graphics ×1

pyqt ×1

python ×1

python-3.x ×1

stack-overflow ×1