Capítulo 5. Programação

O Kig permite ao usuário criar tipos personalizados na linguagem de programação Python. Este é um recurso muito avançado, e só é conhecido pelo autor um outro programa de Geometria Interativa que faça o mesmo (o programa do GNOME Dr.Geo).

A programação em Python no Kig basicamente permite-lhe criar a sua própria forma de definir um objeto a partir de certos objetos-pai. Por exemplo, se você for um professor de matemática e se tiver alguma forma bonita de calcular um ponto interessante de uma cônica, então em vez de lidar com construções complexas e macros, você poderá então definir em Python como o ponto será calculado, deixando que o Kig o mostre para você.

Suponha que você não conhecia o tipo Ponto Médio do Kig e quisesse mostrar o ponto médio de dois pontos indicados. Você iria então clicar no botão 'Script' de Python da barra de ferramentas ou selecionar a opção ObjetosOutros'Script' de Python na barra de menu. Aparecerá então um assistente que lhe permitirá prosseguir.

O assistente de objetos de 'scripts'

A primeira coisa que terá que fazer é selecionar os argumentos do objeto. No nosso exemplo, isto corresponde aos dois pontos dos quais pretendemos mostrar o ponto médio. Selecione-os na janela principal do Kig e clique em Próximo para prosseguir.

Agora, será apresentado um campo de texto onde poderá inserir o código do seu objeto. O código de modelo e alguns comentários já estão colocados. É importante certificar-se que o seu código é Python válido. As pessoas familiarizadas com o Python irão reparar que já está definida uma função em Python chamada calc. É, por isso, necessário aderir às regras do Python para definir funções. Por exemplo, cada linha da função deverá começar por um Tab. A primeira linha que não comece por uma Tab termina a definição da função.

A função de Python que deverá ser definida é chamada de calc e, no nosso caso, aceita dois argumentos. Estes são os objetos que você selecionou como argumentos na tela anterior. Existirão tantos argumentos quanto os que você tenha selecionado. Eles chamar-se-ão de arg1 e arg2, mas você poderá mudar os nomes deles para algo mais compreensível, se desejar.

Na função, você poderá fazer todos os tipos de cálculos que julgue necessários, usando os dois argumentos, se necessário. Você deverá devolver o objeto que deseja que apareça. No nosso caso, este é um objeto Point. Os dois argumentos são também objetos Point, e pode-se usar a função Point.coordinate() para registrar as coordenadas dos dois pontos indicados.

Os cálculos necessários no nosso exemplo são muito simples; simplesmente adicionam-se as duas coordenadas e divide-se o resultado por dois. A partir daí, cria-se um novo ponto com essa coordenada. O código de Python necessário é:

def calc( a, b ):
    m = ( a.coordinate() + b.coordinate() ) / 2;
    return Point( m )
Inserindo o código para o ponto médio no assistente do Objeto de 'Script'.

Se você clicar agora no botão Terminar, então o novo objeto irá aparecer no documento do Kig. Se você mover um dos pontos, então o novo ponto irá mover-se junto com eles. Objetos bem mais poderosos poderão ser criados desta forma e você é encorajado a fazer isso.

O objeto de 'script' recém construído.

Todos os objetos do Kig podem ser usados no código de Python. Como foi indicado acima, os pontos fazem parte da classe Point e você poderá usar, por exemplo, o método Point.coordinate(). Você poderá devolver também todos os tipos de objetos e não apenas Point's. Estão disponíveis muitos mais métodos e classes na página de código em Python do Kig, assim como uma referência completa sobre eles aqui.