当他们进入正方形时,我怎样才能让点变色

时间:2013-08-13 05:26:22

标签: python python-2.7 turtle-graphics

好的,所以这段代码使用乌龟图形绘制一个正方形,然后在屏幕上创建大约300个随机放置的点。我可以在我当前的代码中添加或更改什么,以使点在广场内的土地改变颜色,例如红色。而外面的圆点保持相同的颜色?有一个简单的方法吗?任何人都可以添加任何代码吗?提前谢谢。

from turtle import *
from random import randint
speed("fastest")

area_size = 800 
max_coord = area_size / 2
num_dots = 300 
setup(area_size, area_size)

penup()
goto(-200, -200)
pendown()
goto(200, -200)
goto(200, 200)
goto(-200,200)
goto(-200,-200)
goto(200,200)


for _ in range(num_dots):

    dots_pos_x = randint(-max_coord, max_coord)
    dots_pos_y = randint(-max_coord, max_coord)

    penup()
    goto(dots_pos_x, dots_pos_y)
    dot(7)
    pendown()

hideturtle()
done()

2 个答案:

答案 0 :(得分:0)

我在你的for循环中添加了几行代码来执行你所要求的:

for _ in range(num_dots):

    dots_pos_x = randint(-max_coord, max_coord)
    dots_pos_y = randint(-max_coord, max_coord)

    penup()
    goto(dots_pos_x, dots_pos_y)
    if -200 <= dots_pos_x <= 200 and -200 <= dots_pos_y <= 200:
        pencolor((255, 0, 0))
    else:
        pencolor((0, 0, 0))
    dot(7)
    pendown()

答案 1 :(得分:0)

关于你在Brionius'答案中的评论,如果你有一个尺寸合适的正方形并且对角线贯穿两个角(即从底角到顶角),你需要做的就是:

if(xcor() < ycor()): 
    # Do whatever
else :
    # Do whatever

这是因为我们假设通过正方形的对角线的梯度为1.我希望自己清楚。