Kig (software)
| Kig | |
|---|---|
| Developer | KDE |
| Initial release | 2 August 2006 |
| Stable release | 23.08.3[1] |
| Written in | C++ (Qt) |
| Operating system | Unix-like, Mac OS X, Windows |
| Type | Interactive geometry software |
| License | GPL |
| Website | https://apps.kde.org/kig/ |
| Repository | |
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.
Import and export
Kig 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
Kig can handle any classical object of the dynamic geometry, but also:
- The center of curvature and osculating circle of a curve;
- Dilation, generic affinity, inversion, projective application, homography and harmonic homology;
- A hyperbola with given asymptotes;
- 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
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 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
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()
References
- ^ . 9 November 2023 https://apps.kde.org/de/kig/. Retrieved 21 November 2023.
{{cite web}}: Missing or empty|title=(help)
External links
- 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
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.