如何使三角形中的平面改变颜色

时间:2013-08-13 06:30:47

标签: 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)

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()

1 个答案:

答案 0 :(得分:0)

在致电dot之前,请添加以下代码:

if -200 < dots_pos_y < dots_pos_x < 200:
    pencolor('blue')
else:
    pencolor('black')

if语句会进行测试,以查看您为点选择的随机坐标是否落在三角形内。 Python的比较运算符链接使它非常紧凑!更明确的测试版本是:

(dots_pos_y > -200 and      # above bottom edge of the triangle
 dots_pos_x < 200 and       # to the left of the right edge
 dots_pos_x > dots_pos_y)   # to the lower-right of the diagonal edge

在Python中,像A < B < C这样的链式比较表达式等同于A < B and B < C,所以两个版本的结果相同(如果你稍微重新排列它们)。