Kig надає вам змогу створювати власні типи на мові програмування Python. Це дуже розвинена можливість, мені відома лише одна програма з інтерактивної геометрії, що має подібну функціональність (програма для GNOME — Dr.Geo).
На базовому рівні написання сценаріїв на Python у Kig надає вам змогу створювати ваші власні об’єкти з певних базових об’єктів. Наприклад, якщо ви є вчителем математики і вам відомий витончений спосіб обчислення цікавої точки конічного перерізу, тоді замість плутанини складних побудов і макротипів, ви можете просто написати код на Python для обчислення цієї точки, а потім Kig продемонструє вам цю точку.
Припустімо, що вам не відомо про вбудований у Kig тип «Середня точка», а ви хочете побачити середню точку між двома заданими точками. Тоді вам слід натиснути кнопку на панелі інструментів або вибрати пункт меню → → . Перед вами з’явиться майстер, який полегшить вам подальшу роботу.
Перш за все слід вибрати аргументи об’єкта-сценарію. У нашому випадку це дві точки, для яких ви бажаєте знайти середню точку. Виберіть ці точки у головному вікні Kig, а потім натисніть кнопку , щоб продовжувати.
Перед вами з’явиться поле редагування тексту, куди ви можете ввести код вашого об’єкта-сценарію. Код шаблону і деякі коментарі вже міститимуться у ньому. Важливо переконатися, що ваш код є коректним з точки зору мови Python. Користувачі знайомі з мовою Python зауважать, що насправді ми визначаємо функцію Python з назвою calc
. Тому потрібно дотримуватися правил Python для визначення функцій. Наприклад, кожен рядок функції має починатися з символу Tab. Перший же рядок, що не починається з табуляції завершує визначення функції.
Функція Python, яку ми хочемо визначити, називається calc
, і у нашому випадку приймає два параметри. Це ті об’єкти, які ви вибрали як аргументи у попередньому вікні. Вам потрібно стільки ж аргументів, скільки ви там вибрали. Їх названо arg1
і arg2
, але ви можете змінити їх назви на змістовніші, якщо ви цього бажаєте.
У функції ви можете виконувати всі види обчислень, які вважаєте потрібними, з використання двох аргументів. Функція має повертати об’єкт, який ви бажаєте визначити. У нашому випадку це об’єкт Point
. Два аргументи є також об’єктами Point
, і ми можемо використовувати функцію Point.coordinate()
для визначення координат двох заданих точок.
Розрахунки, які потрібні у нашому прикладі, дуже прості: ми просто додаємо два набори координат і ділимо отриманий набір навпіл. Потім ми будуємо нову точку за отриманим результатом. Ось відповідний код мовою Python:
def calc( a, b ): m = ( a.coordinate() + b.coordinate() ) / 2; return Point( m )
Якщо ви тепер натиснете на кнопку , у документі Kig з’явиться новий об’єкт. Якщо ви потім пересунете одну з точок, створена сценарієм точка рухатиметься відповідно до руху кінця відрізка. За допомогою цього способу можна побудувати набагато складніші об’єкти: просто спробуйте це зробити.
Всі об’єкти у Kig можна використовувати у коді на Python. Як ми вже бачили раніше, точки належать до класу Point
, отже, для них можна використовувати, наприклад, метод Point.coordinate()
. Функції також можуть повертати всі типи об’єктів, а не лише Point
. У коді на Python у Kig доступні набагато більше класів і методів, докладнішу довідку щодо цього питання можна знайти на сайті Kig.