Випадкова точка в колі cairo і python, rockwood

За допомогою Кайро точку намалювати просто, але як розрахувати, щоб крапка не вилазила за межі кола?

- За допомогою теореми Піфагора.

Cairo - бібліотека 2D векторної графіки.
Python - інтерпретатор і програмну мову.

Ми розглянемо тільки приклад X координати. Коло, як відомо, квадратний, а Піфагороі штани всі сторони рівні, тому для Y координати всі розрахунки будуть ті ж самі, тільки з іншими буквами.

Нульова точка XY координат в Cairo починається в лівому верхньому кутку картинки. X0 - по горизонталі, Y0 - по вертикалі. А координати кола починаються в середині картинки і відстоять від Cairo на відстань радіус + облямівка в 10 пікселів.

Випадкова точка в колі cairo і python, rockwood

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

Випадкова точка в колі cairo і python, rockwood

Якщо умова здійсненне, ми вважаємо координати точки прийнятними, а якщо немає, то ігноруємо їх.

Ми оперуємо абсолютними значеннями числа без урахування його знака, тому що місце розташування точки відносно центру кола нам байдуже.

Нас цікавить довше чи діагональ прямокутника довжини R радіусу кола мінус r радіуса точки чи ні.

Якщо немає, то точка хороша, і ми її малюємо. Якщо так - точка погана, ми її пропускаємо і за допомогою генератора випадкових чисел отримуємо наступну.

Код для Пітона 2.7