KIG is free and open-source interactive geometry software, which is part of the KDE Education Project. It has some facilities for scripting in Python, as well as the creating macros from existing constructions.
Developer(s) | KDE |
---|---|
Initial release | 2 August 2006 |
Stable release | 23.08.3[1]
/ 9 November 2023 |
Repository | |
Written in | C++ (Qt) |
Operating system | Unix-like, Mac OS X, Windows |
Type | Interactive geometry software |
License | GPL |
Website | https://apps.kde.org/kig/ |
Import and export
editKig can import files made by DrGeo and Cabri Geometry as well as its own file format, which is XML-encoded. Kig can export figures in LaTeX format and as SVG (vector graphics) files.
Objects
editKig can handle any classical object of the dynamic geometry, but also:
- The center of curvature and osculating circle of a curve;
- The dilation, generic affinity, inversion, projective application, homography and harmonic homology;
- The hyperbola with given asymptotes;
- The Bézier curves (2nd and 3rd degree);
- The polar line of a point and pole of a line with respect to a conic section;
- The asymptotes of a hyperbola;
- The cubic curve through 9 points;
- The cubic curve with a double point through 6 points;
- The cubic curve with a cusp through 4 points.
Scripting language
editInside the figure
editAnother object is available inside Kig, it is a Python language script. It can accept Kig objects as variables, and always return one object.
For example, if there is already a numeric object inside the figure, for example 3, the following Python object can yield its square (9):
def square(arg1):
return DoubleObject(arg1.value() ** 2)
The variables are always called arg1
, arg2
etc. in the order they are clicked upon. Here there is only one variable arg1
and its numerical value is obtained with arg1.value()
.
If no one wants to implement the square of a complex number (represented by a point in the Argand diagram), the object which has to be selected at the creation of the script must necessarily be a point, and the script is
def csquare(arg1):
x = arg1.coordinate().x
y = arg1.coordinate().y
z = x * x - y * y
y = 2 * x * y
x = z
return Point(Coordinate(x, y))
The abscissa of the point representing the square of the complex number is as can be seen by expanding , Coordinate(x,y)
creates a Python list made of the two coordinates of the new point. And Point
creates the point which coordinates are precisely given by this list.
But a Python object inside a figure can only create one object and for more complex figures one has to build the figure with a script:
Figure created by a script
editKig comes up with a little program (written in Python) called pykig.py
which can
- load a Python script, e.g.
MyScript.py
- build a Kig figure, described by this script
- open Kig and display the figure.
For example, here is how a Sierpinski triangle can be made (as an IFS) with pykig
:
from random import *
kigdocument.hideobjects()
A = Point(0, 2)
A.show()
B = Point(-2, -1)
B.show()
C = Point(2, -1)
C.show()
M = Point(.1, .1)
for i in range(1, 1000):
d = randrange(3)
if d == 0:
s = Segment(A, M)
M = s.midpoint()
if d == 1:
s = Segment(B, M)
M = s.midpoint()
if d == 2:
s = Segment(C, M)
M = s.midpoint()
M.show()
External links
edit- Official website
- The Kig Handbook
- Thomas G. Pfeiffer: Erstellen geometrischer Skizzen mit kig. Freies Magazin, December 2009 (German)
- Mike Diehl: Teaching Math with the KDE Interactive Geometry Program. Linux Journal, 2009-09-19
- Abdul Halim Abdullah, Mohini Mohamed: The Use Of Interactive Geometry Software (IGS) To Develop Geometric Thinking. Jurnal Teknologi 49(1), December 2008, DOI: 10.11113/jt.v49.212
- ^ . 9 November 2023 https://apps.kde.org/de/kig/. Retrieved 21 November 2023.
{{cite web}}
: Missing or empty|title=
(help)