【问题标题】:how can i make dots change color when they enter a square我怎样才能让点进入正方形时改变颜色
【发布时间】:2013-08-13 05:26:21
【问题描述】:

好的,所以这段代码使用海龟图形绘制了一个正方形,然后在屏幕上创建了大约 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()

【问题讨论】:

    标签: python python-2.7 turtle-graphics


    【解决方案1】:

    我在你的 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()
    

    【讨论】:

    • 非常感谢!另一个问题,如果你不介意。当对角线穿过正方形时,有没有一种方法,当一个点落在正方形的一半时,它变成绿色,但当它落在另一半时,它变成蓝色,并且它完全落在正方形之外,它变成红色?我整天都被困在这上面,非常感谢您的帮助。
    【解决方案2】:

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

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

    这是因为我们假设穿过正方形的对角线的梯度为 1。我希望我说清楚了。

    【讨论】:

      猜你喜欢
      • 2017-12-29
      • 2022-01-24
      • 1970-01-01
      • 2023-02-22
      • 2014-05-14
      • 2021-11-07
      • 1970-01-01
      • 2022-10-01
      相关资源
      最近更新 更多