Побудови по колу передбачають використання рівняння кола:

x=r cos f
y=r sin f

де f змінюється по всій довжині кола (від 0 до 2π), яку треба розбити на певну No кількість частин (сторін); після проходження сторони відбувається поворот на певну кількість градусів.


n=16 # кількість поворотів, або сторін
f=0 # початковий кут
df= 2*math.pi/n  # кут повороту такий, щоб за n кроків пройти
for promin in range No: # кожен з n променів
    k=random.choice(kolory) # обираємо випадковий колір
    x= 250+round(50*math.cos(f)) # обчислюємо координату х за рівнянням кола
    y= 250+round(50*math.sin(f)) # обчислюємо координату у за рівнянням кола
    canvas.create_line (250, 250, x, y, fill=k, width=2) # малюємо лінію з центру екрану до точки х,у
    f += df # змінюємо кут f на значення повороту


Задача 1. Вся сніжинка одного кольору (змінити розташування команди вибору кольору k). Сніжинка малюється не з центру екрану (250,250), а у випадкових координатах. Розмір (r) - випадкове число


Задача 2. Кількість промінців No - випадкове число від 10 до 30


Задача 3. Змініть команду малювання для побудови кіл замість ліній


Побудова кола за рівнянням кола

Зміст побудови кола за рівнянням кола зводиться до того, що лінії потрібно малювати не від центру до окремих точок кола, а від попередньої точки до поточної. При цьому кількість сторін (поворотів) має бути досить великою, щоб окремі з багатьох коротких ліній утворилась лінія кола.

    x1=xc+round(r*math.cos(f)) # перша точка кола
    y1= yc+round(r*math.sin(f))
    for promin in range (n*10):    # для кожної лінії
        x2= xc+round(r*math.cos(f)) # визначаємо наступну точку
        y2= yc+round(r*math.sin(f))
        canvas.create_line(x1, y1, x2,y2,fill=k, width=2) # малюємо лінію між двома точками
        x1=x2 # друга точка стає початковою для наступної лінії
        y1= y2

Задача 4. Змінити попередню програму, змінивши кількість сторін на випадкове число


Задача 5. Спіраль - радіус постійно збільшується


Задача 6. Зірки - Кілька 4-кутників, повернутих відносно попередніх на деякий кут

Розв'язки самостійних задач:
Текст
Last modified: Sunday, 12 July 2020, 12:18 PM