我是一名艺术家。我安装了Python。有用。我想要做的是基于重复算法在白色屏幕(窗口)上创建图像。我似乎无法在窗户上点上任何东西。如果我可以得到一些python代码,以及包含该代码的库,基于x,y坐标,可以在该窗口中绘制一个点,我几乎可以弄清楚其余部分。也可以改变点的颜色。 所以流量控制看起来像:
我几乎可以把这一切都搞清楚,但是“画出彩色圆点”超出了我的范围。
答案 0 :(得分:1)
我相信Python附带的turtle库中的dot()
方法是最简单的解决方案:
from random import randint, choice
from turtle import Turtle, Screen
COLORS = ['red', 'green', 'blue', 'magenta', 'yellow', 'cyan']
screen = Screen()
width, height = screen.window_width(), screen.window_height()
turtle = Turtle(visible=False)
turtle.speed('fastest')
turtle.penup()
for _ in range(randint(10, 100)):
radius = randint(5, 45)
x = randint(radius - width//2, width//2 - radius)
y = randint(radius - height//2, height//2 - radius)
turtle.setposition(x, y)
turtle.dot(radius * 2, choice(COLORS))
screen.exitonclick()
Turtle还有一个circle()
方法,但它从圆的边缘(基于半径而不是直径)绘制而不是像dot()
方法那样的中心。 circle()
的一个优点是轮廓和填充可以是不同的颜色,与dot()
不同。
答案 1 :(得分:0)
您可以安装Pygame模块吗?来自命令行的pip install pygame
之类的东西可能适合您。如果这对您不起作用,请按照上面turtle的建议查看Vijay,它包含在您的python安装中。
以下是一个使用Pygame的示例,该窗口在一个适合您修改的窗口上绘制随机圆圈:
import pygame
import random
def get_random_position():
"""return a random (x,y) position in the screen"""
return (random.randint(0, screen_width - 1), #randint includes both endpoints.
random.randint(0, screen_height - 1))
def get_random_named_color():
"""return one of the builtin colors"""
return random.choice(all_colors)
all_colors = list(pygame.colordict.THECOLORS.items())
# convert color dictionar to a list for random selection once
if __name__ == "__main__":
pygame.init()
screen_width,screen_height = 640, 480
surface = pygame.display.set_mode((screen_width,screen_height))
pygame.display.set_caption('Random Circles')
clock = pygame.time.Clock() #for limiting FPS
FPS = 10
exit_demo = False
# start with a white background
surface.fill(pygame.Color("white"))
while not exit_demo:
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit_demo = True
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
# fill the screen with white, erasing everything
surface.fill(pygame.Color("white"))
# Up/Down arrows to change FPS limit
elif event.key == pygame.K_UP:
FPS *= 2
elif event.key == pygame.K_DOWN:
FPS /= 2
# calculate the properties of a circle
name, random_color = get_random_named_color()
pos = get_random_position()
circle_size = random.randint(1,10)
pygame.draw.circle(surface, random_color, pos, circle_size)
#print("{} at {}".format(name, pos))
pygame.display.update()
clock.tick(FPS)
pygame.quit()
quit()
按退出键清除屏幕,然后使用向上和向下箭头更改速度。按标题栏上的X关闭窗口。