我想使用pygame创建一堆简单的几何形状(彩色矩形,三角形,正方形......),然后分析它们的关系和特征。我首先尝试turtle,但显然这只是一个图形库,无法跟踪它创建的形状,我想知道Pygame是否也是如此。为了说明这一点,请说我有这个脚本:
# Import a library of functions called 'pygame'
import pygame
from math import pi
# Initialize the game engine
pygame.init()
# Define the colors we will use in RGB format
BLACK = ( 0, 0, 0)
WHITE = (255, 255, 255)
BLUE = ( 0, 0, 255)
GREEN = ( 0, 255, 0)
RED = (255, 0, 0)
# Set the height and width of the screen
size = [800, 600]
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Example code for the draw module")
#Loop until the user clicks the close button.
done = False
clock = pygame.time.Clock()
while not done:
# This limits the while loop to a max of 10 times per second.
# Leave this out and we will use all CPU we can.
clock.tick(10)
for event in pygame.event.get(): # User did something
if event.type == pygame.QUIT: # If user clicked close
done=True # Flag that we are done so we exit this loop
screen.fill(WHITE)
# Draw a rectangle outline
pygame.draw.rect(screen, BLACK, [75, 10, 50, 20], 2)
# Draw a solid rectangle
pygame.draw.rect(screen, BLACK, [150, 10, 50, 20])
# Draw an ellipse outline, using a rectangle as the outside boundaries
pygame.draw.ellipse(screen, RED, [225, 10, 50, 20], 2)
# Draw a circle
pygame.draw.circle(screen, BLUE, [60, 250], 40)
# Go ahead and update the screen with what we've drawn.
# This MUST happen after all the other drawing commands.
pygame.display.flip()
# Be IDLE friendly
pygame.quit()
它会创建此图像:
现在,假设我保存了Pygame创建的图像。 Pygame有没有办法从图像中检测出形状,颜色和坐标?
答案 0 :(得分:3)
你想要的是OpenCV(它有Python绑定) - 这是为了理解"关于图像的事情。
用于检测任何类型的形状(或边缘)的一种流行的数学算法是霍夫变换。您可以在此处详细了解相关信息 - http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/hough_circle/hough_circle.html
OpenCV里面有Hough变换函数,非常有用。
您可以尝试制作自己的Hough变换代码并使用它......但是库可以让它变得更容易。
答案 1 :(得分:0)
是的,它可以,但是pygame也适合制作游戏但不幸的是,你无法将它们转换为IOS或Android,过去,有一个名为PGS4A的程序允许你将pygame项目转换为android但是遗憾的是,该计划已经停止,现在,没有办法。在这种情况下,我的想法是,如果您想要这样做,请从此链接“http://developer.android.com/sdk/index.html#top”下载Android Studio,并在谷歌上了解如何在Android Studio中使用libgdx,这个人有一个非常有用的教程,其中包含很多部分,但如果您的目标是制作商业应用程序,我强烈建议您查看本教程“https://www.youtube.com/watch?v=_pwJv1QRSPM”非常有帮助。祝你的目标好运,希望这有助于你做出决定,但是python是一种很好的编程语言,它将为你提供编程方式的基本思路。