HOME

TheInfoList



OR:

KIG is
free and open-source Free and open-source software (FOSS) is software available under a Software license, license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term ...
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.


Import and export

Kig can import files made by DrGeo and Cabri Geometry as well as its own file format, which is
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
-encoded. Kig can export figures in
LaTeX Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latices are found in nature, but synthetic latices are common as well. In nature, latex is found as a wikt:milky, milky fluid, which is present in 10% of all floweri ...
format and as SVG (vector graphics) files.


Objects

Kig 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 Affinity may refer to: Commerce, finance and law * Affinity (law), kinship by marriage * Affinity analysis, a market research and business management technique * Affinity Credit Union, a Saskatchewan-based credit union * Affinity Equity Pa ...
, inversion,
projective application Projective may refer to Mathematics *Projective geometry *Projective space *Projective plane *Projective variety *Projective linear group *Projective module *Projective line *Projective object *Projective transformation *Projective hierarchy *Pr ...
, 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 A conic section, conic or a quadratic curve is a curve obtained from a cone's surface intersecting a plane. The three types of conic section are the hyperbola, the parabola, and the ellipse; the circle is a special case of the ellipse, tho ...
; # The asymptotes of a hyperbola; # The
cubic curve In mathematics, a cubic plane curve is a plane algebraic curve defined by a cubic equation : applied to homogeneous coordinates for the projective plane; or the inhomogeneous version for the affine space determined by setting in such an eq ...
through 9 points; # The cubic curve with a double point through 6 points; # The cubic curve with a
cusp A cusp is the most pointed end of a curve. It often refers to cusp (anatomy), a pointed structure on a tooth. Cusp or CUSP may also refer to: Mathematics * Cusp (singularity), a singular point of a curve * Cusp catastrophe, a branch of bifu ...
through 4 points.


Scripting language


Inside the figure

Another 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 In mathematics, a complex number is an element of a number system that extends the real numbers with a specific element denoted , called the imaginary unit and satisfying the equation i^= -1; every complex number can be expressed in the for ...
is x^2-y^2 as can be seen by expanding (x+iy)^2=x^2-y^2+i(2xy), 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

Kig 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

*
The Kig Handbook
* Thomas G. Pfeiffer

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 {{KDE Free educational software Free interactive geometry software KDE Education Project KDE software KDE Software Compilation Software that uses Qt