π ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΡΡΠ³ Π² Python: ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΡΡΠ³ Π² Python, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ `turtle`. ΠΠΎΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΈΡΡΠ΅Ρ ΠΊΡΡΠ³:
import turtle
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΊΡΠ°Π½
screen = turtle.Screen()
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ΅ΡΠ΅ΠΏΠ°Ρ
Ρ
t = turtle.Turtle()
# Π ΠΈΡΡΠ΅ΠΌ ΠΊΡΡΠ³
t.circle(50)
# ΠΠ°ΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠΊΡΠ°Π½ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅
screen.exitonclick()
ΠΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ `turtle` Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠΊΠ½Π° ΡΠΊΡΠ°Π½Π° ΠΈ ΡΠ΅ΡΠ΅ΠΏΠ°Ρ ΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΈΡΡΠ΅Ρ ΠΊΡΡΠ³ Π½Π° ΡΠΊΡΠ°Π½Π΅. Π Π°Π·ΠΌΠ΅Ρ ΠΊΡΡΠ³Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ `50` ΡΡΠ½ΠΊΡΠΈΠΈ `circle`. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π΄ΡΡΠ³ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΡΠΎΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΡΡΠ³ Π² ΠΏΠΈΡΠΎΠ½Π΅?
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΡΡΠ³Π° Π² ΠΏΠΈΡΠΎΠ½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΠ±Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΡΡΠ³Π° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ Pillow, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
from PIL import Image, ImageDraw
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈ ΡΠΎΠ½ΠΎΠΌ
image = Image.new("RGB", (500, 500), "white")
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ
draw = ImageDraw.Draw(image)
# ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΠ΅Π½ΡΡ ΠΈ ΡΠ°Π΄ΠΈΡΡ ΠΊΡΡΠ³Π°
center_x = 250
center_y = 250
radius = 200
# Π ΠΈΡΡΠ΅ΠΌ ΠΊΡΡΠ³ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ
draw.ellipse((center_x - radius, center_y - radius, center_x + radius, center_y + radius), fill="blue")
# Π‘ΠΎΡ
ΡΠ°Π½ΡΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
image.save("circle.png")
ΠΡΠΏΠΎΠ»Π½ΠΈΠ² Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ Π½Π°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΊΡΡΠ³ΠΎΠΌ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΈ ΡΠ²Π΅ΡΠ° Π² ΠΊΠΎΠ΄Π΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½ΡΠΆΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΊΠΎΠ΄ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ°ΠΉΠ» "circle.png".
ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΡΡΠ³ Π² ΠΏΠΈΡΠΎΠ½Π΅ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ.
import math
# ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΠ΅Π½ΡΡ ΠΈ ΡΠ°Π΄ΠΈΡΡ ΠΊΡΡΠ³Π°
center_x = 0
center_y = 0
radius = 5
# ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΠ°Π³ ΡΠ³Π»Π° Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ
angle_step = 0.1
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΠΎΡΠ΅ΠΊ Π½Π° ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ
points = []
# ΠΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠΎΡΠ΅ΠΊ Π½Π° ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ
for angle in range(0, 360, int(angle_step * 10)):
x = center_x + radius * math.cos(math.radians(angle))
y = center_y + radius * math.sin(math.radians(angle))
points.append((x, y))
print(f"Π’ΠΎΡΠΊΠ° ({x}, {y})")
# ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΡΠ΅ΠΊ
print(points)
ΠΡΠΏΠΎΠ»Π½ΠΈΠ² Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΠΎΡΠ΅ΠΊ, ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΡ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΡΠ΅Π½ΡΡΠΎΠΌ ΠΈ ΡΠ°Π΄ΠΈΡΡΠΎΠΌ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΡΡΠ³Π° Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ΅ ΠΈΠ»ΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ Π½ΠΈΠΌΠΈ.