一、首先声明递归真的真的不好用,这个代码唯一不明显的错误就是overflow溢出,因为递归太多次了呗,但还可以运行出结果,有大佬可以解决overflow请评论
二、这个实验是采用种子填充算法,递归调用fill填充函数。从指定的种子点开始,向各个方向上搜索,逐个像素进行处理,直到遇到边界,如果该点的颜色不等于边界颜色,就把它改为边界颜色,从而实现种子填充。填充为字母H
三、代码
#coding=utf-8
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
import sys
point=0 #Times
sys.setrecursionlimit(1000000) # 防止栈溢出,但是好像防止不了
def draw():
#H的左竖
glClear(GL_COLOR_BUFFER_BIT)
glBegin(GL_LINE_LOOP)
glColor3f(1.0, 0.0, 1.0)
glVertex2i(-20,-30)
glVertex2i(-20,30)
glVertex2i(-10,30)
glVertex2i(-10,-30)
glEnd()
glFlush()
#H的一横
glBegin(GL_LINE_LOOP)
glColor3f(1.0, 0.0, 1.0)
glVertex2i(20,-10)
glVertex2i(20,10)
glVertex2i(-10,10)
glVertex2i(-10,-10)
glEnd()
glFlush()
#H的右竖
glBegin(GL_LINE_LOOP)
glColor3f(1.0, 0.0, 1.0)
glVertex2i(30, 30)
glVertex2i(30, -30)