Вы также можете создавать свои типы (макротипы, или просто макросы) на языке Python. Такую возможность, кроме Kig, имеет только Dr.Geo.
Сценарии Python в Kig позволяют создать ваш собственный метод построения объектов (используя всё же базовые). Например, если у вас есть свой метод вычисления определённой точки на конусе, то вместо сложных конструкций и макротипов, вы сможете написать его реализацию на Python, а Kig отобразит её.
Пример. Предположим, вам не нравится как строится серединная точка в Kig, вы хотите построить её по-своему между двумя данными точками. Нажмите кнопку на панели инструментов или через меню → → . Появится ассистент, который поможет осуществить задуманное.
Первое, что вам нужно будет сделать, — выбрать аргументы, требуемые для построения объекта. В нашем примере, это две точки. Выберите их в окне Kig и нажмите .
Отобразится текстовое окно для ввода кода. Там уже будет шаблон с комментариями. Важно убедиться, что введённый вами код соответствует синтаксису Python. Знакомые с языком Python пользователи отметят, что на самом деле мы определяем функцию Python под названием calc
. Поэтому необходимо соблюдать правила Python для определения функций. Например, каждая строка функции должна начинаться с табуляции. Первая же строка без неё сообщает об окончании определения функции.
Главная функция, которая должна быть определена, называется «calc», в нашем случае она принимает два аргумента. Это объекты, которые вы выбрали в предыдущем окне мастера. Они называются arg1
и arg2
, но вы можете изменить их имена на более понятные для вас.
В функциях вы можете выполнять все нужные вам типы расчётов, используя, при надобности, аргументы. Функция должна возвращать объект. В нашем случае — это точка (типа Point
, два наших аргумента также имеют этот тип). Мы можем использовать функцию Point.coordinate()
для определения координат данных точек.
В нашем примере расчёт очень прост. Нужно сложить две координаты и разделить сумму на два. Затем строится точка. Код на Python будет следующий:
def calc( a, b ): m = ( a.coordinate() + b.coordinate() ) / 2; return Point( m )
После нажатия кнопки , новый объект появится в документе Kig. Если вы переместите одну из точек, вновь построенная серединная точка также переместится. Таким способом, можно построить объекты много сложнее, чем в примере. Попробуйте сделать это самостоятельно.
В коде Python могут использоваться все объекты Kig. Точки принадлежат к классу Point
, и можно использовать, например, метод Point.coordinate()
. Полный список классов и их методов, доступных в Python, находится здесь.