Kig(ソフトウェア)

キグ
開発者KDE
初回リリース2006年8月2日 (2006年8月2日
安定版リリース
23.08.3 [ 1 ] ウィキデータで編集する / 2023年11月9日 (2023年11月9日
リポジトリ
書かれたC++ ( Qt )
オペレーティング·システムUnix系Mac OS XWindows
タイプインタラクティブな幾何学ソフトウェア
ライセンスGPL
Webサイトhttps://apps.kde.org/kig/

KIGは、 KDE教育プロジェクトの一部である、無料かつオープンソースのインタラクティブな幾何学ソフトウェアです。Pythonスクリプト機能や、既存の構造からマクロを作成する機能も備えています。

輸入と輸出

Kigは、 DrGeoCabri Geometryで作成されたファイルに加え、独自のXMLエンコードされたファイル形式もインポートできます。図はLaTeX形式とSVG(ベクターグラフィック)ファイル としてエクスポートできます。

オブジェクト

Kig は、動的ジオメトリのあらゆる古典的なオブジェクトを処理できるだけでなく、次のものも処理できます。

  1. 曲線の曲率中心と接触円。
  2. 拡大、ジェネリックアフィニティ反転射影適用、ホモグラフィ調和ホモロジー
  3. 与えられた漸近線持つ双曲線。
  4. ベジェ曲線(2 次および 3 次)
  5. 円錐曲線に関する点の極線と直線
  6. 双曲線の漸近
  7. 9 点を通る3 次曲線
  8. 6 つの点を通る2 つの点を持つ 3 次曲線。
  9. 4 点を通る尖点を持つ 3 次曲線。

スクリプト言語

フィギュア内部

Kig にはもう一つオブジェクトがあります。これはPython 言語のスクリプトです。Kig オブジェクトを変数として受け取り、常に 1 つのオブジェクトを返します。

たとえば、図の中にすでに数値オブジェクト(たとえば 3)がある場合、次の Python オブジェクトはその平方数 (9) を生成できます。

def square ( arg1 ): return DoubleObject ( arg1 . value () ** 2 )

変数は常にクリックされた順にarg1、などと呼ばれます。ここでは変数は1つだけであり、その数値は で取得されます。 arg2arg1arg1.value()

複素数の2乗(アルガン図の点で表される)を実装したくない場合は、スクリプトの作成時に選択する必要があるオブジェクトは必ず点であり、スクリプトは

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 ))

複素数の2乗を表す点の横座標は、を展開するとわかるように、 新しい点の2つの座標からなるPythonリストを作成します。そして、このリストによって正確に与えられた座標を持つ点を作成します。 ×2y2{\displaystyle x^{2}-y^{2}}×+y2×2y2+2×y{\displaystyle (x+iy)^{2}=x^{2}-y^{2}+i(2xy)}Coordinate(x,y)Point

しかし、図の中の Python オブジェクトは 1 つのオブジェクトしか作成できず、より複雑な図の場合はスクリプトを使用して図を構築する必要があります。

スクリプトによって作成された図

pykig.pyKigはPython で書かれた小さなプログラムを作成し、

  1. Pythonスクリプトをロードする。例:MyScript.py
  2. このスクリプトで記述されたKigフィギュアを構築する
  3. Kig を開いてフィギュアを表示します。

たとえば、次のようにして、シェルピンスキーの三角形を( IFSとして)作成することができます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 ( )

参考文献

  1. ^ 2023年11月9日https://apps.kde.org/de/kig/ . 2023年11月21日閲覧{{cite web}}:欠落または空|title=(ヘルプ)