2013-08-13 2 views
1

Это мой код, он рисует треугольник, используя черепаху, а затем генерирует 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() 

ответ

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, так что обе версии работают из того же (если переставить их немного).

Смежные вопросы