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

1 に答える 1

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 では、連鎖比較式 likeA < B < Cは と同等A < B and B < Cであるため、2 つのバージョンは同じように機能します (少し並べ替えれば)。

于 2013-08-13T07:51:41.987 に答える