DrGeo - DrGeo - Wikipedia
![]() | |
![]() | |
Původní autoři | Hilaire Fernandes |
---|---|
První vydání | 31. prosince 1996 |
Stabilní uvolnění | 19.09 / 6. srpna 2019 |
Úložiště | ![]() |
Napsáno | Pharo, Pokec |
Operační systém | Linux, Mac OS X, Okna, Cukr |
Typ | Software pro interaktivní geometrii |
Licence | GPL |
webová stránka | drgeo |
GNU Dr. Geo je software pro interaktivní geometrii, který umožňuje uživatelům navrhovat a manipulovat s interaktivními geometrickými skicemi. Je to svobodný software (zdrojový kód, překlady, ikony a instalační program jsou vydány pod GNU GPL licence), kterou vytvořil Hilaire Fernandes, je součástí GNU běží přes a Morfický grafický systém (což znamená, že běží na Linuxu, Mac OS, Windows, Android). Aktuální verze Dr. Geo se také nazývá Dr. Geo II. Historicky byl Dr. Geo vyvinut v C ++ a Dr. Geo II je kompletní přepis pomocí Pharo k tomu došlo v roce 2005. Tento článek odkazuje na nejnovější verzi.
Objekty
Dr. Geo manipuluje s různými druhy objektů, jako jsou body, čáry, kruhy, blok kódu.
Body
Dr. Geo má několik druhů bodů: volný bod, kterým lze pohybovat myší (ale může být připojen ke křivce) a bod daný jeho souřadnicemi.
Body lze také vytvářet jako průsečík ze 2 křivek nebo jako střed a segment.
Čáry
Dr. Geo je vybaven klasikou čára, paprsek, segment a vektor.
Mezi další křivočaré objekty patří kružnice (definované 2 body, středem a segmentem nebo poloměrem), oblouky (definované třemi body nebo středem a úhlem), mnohoúhelníky (pravidelné nebo jiné, definované koncovými body) a loci.
Transformace
Kromě rovnoběžné a kolmé přímky procházející bodem může Dr. Geo aplikovat na bod nebo přímku jednu z těchto transformací:
- reflexe
- symetrie
- překlad
- otáčení
- homotety
Makro-konstrukce
Dr. Geo přichází s makro-konstrukcí: způsob, jak naučit Dr. Geo novým konstrukcím. Umožňuje přidat do Dr. Geo nové objekty: nové transformace jako inverze kruhu, zdlouhavé konstrukce zahrnující mnoho mezilehlých objektů nebo konstrukce zahrnující skript (také nazývaný makroskript).
Když některé objekty, tzv finále závisí na jiných objektech, tzv počáteční, je možné vytvořit složitou konstrukci odvozující konečné objekty od uživatelem zadaných počátečních objektů. Tohle je makro konstrukce, graf vzájemně závislých objektů.
Programování
Přístup k uživatelskému programování je podstatou Dr. Geo: ze softwaru může uživatel přímo číst, studovat, upravovat a redistribuovat upravenou verzi Dr. Geo. Dále je navrženo skriptování vložené do náčrtu.
Zdrojový kód Dr. Geo je Pharo. Je to také jazyk používaný pro uživatelské programování: rozšířit Dr. Geo o libovolné výpočetní operace (skript Pharo) a definovat geometrický náčrt zcela pomocí programovacích pokynů (náčrt Pharo).
Dr. Geo je dodáván se svým zdrojovým kódem a vývojářskými nástroji. Proto může být jeho kód upravován a překompilován z Dr. Geo, zatímco je funkční. Tento design zděděný od společnosti Pharo usnadňuje testování nových nápadů a nových designů.
Pharo skript

Skript je objekt první třídy definováno podél Dr. Geo kódu. Přichází s nulou, jedním nebo několika argumenty z typů vybraných při definování skriptu. Když je instance skriptu zapojena na plátno, uživatel nejprve vybere jeho argumenty na plátně kliknutím myší, poté pozici na plátně výstupu skriptu. Skript se aktualizuje při každém výpočtu plátna. Skripty lze použít kaskádově, přičemž jeden je argumentem jiného.[1]

Skripty jsou navrženy k použití dvěma různými způsoby:
- Výstup objektu (tj. Číselná hodnota) a zobrazení jeho výsledku na plátně. Tento výsledek lze použít při vytváření následných objektů (geometrických nebo skriptových).
- Přístup k objektům na plátně: model (MathItem) nebo pohled (Costume) pro libovolné použití a úpravy. Například k úpravě barvy objektu s výsledkem výpočtu.
Ze skriptu je model argumentů dosažen metodami # arg1, # arg2 atd. Zobrazení argumentů je dosaženo metodami # kostým1, # kostým2 atd.
Výpočet skriptu se provádí metodou #compute. Například pro výpočet čtverce čísla, skriptu
vypočítat"vrací druhou mocninu čísla"^ já arg1 valueItem na druhou
vytvoří číselný objekt, jehož hodnota je druhou mocninou objektu čísla argumentu. Kdykoli se změní první číslo, skript vrátil také změny hodnot.
Pharo skica
Náčrtky Dr. Geo Pharo jsou náčrtky zcela definované v jazyce Pharo. Nejde o konstrukci náčrtu pomocí grafického rozhraní Dr. Geo, ale o popis náčrtu pomocí jazyka Pharo. K dispozici je programovací rozhraní se snadnou a lehkou syntaxí.[2]
Sierpinského trojúhelník
Zde je postup, jak naprogramovat a Sierpinského trojúhelník rekurzivně:

| trojúhelník c |C := DrGeoSketch Nový.trojúhelník := [].trojúhelník := [:s1 :s2 :s3 :n | C segment: s1 na: s2; segment: s2 na: s3; segment: s3 na: s1. n >0 ifTrue: [ trojúhelník hodnota: s1 hodnota: (C střed: s1 a: s2) skrýt hodnota: (C střed: s1 a: s3) skrýt hodnota: n-1. trojúhelník hodnota: (C střed: s1 a: s2) skrýt hodnota: s2 hodnota: (C střed: s2 a: s3) skrýt hodnota: n-1. trojúhelník hodnota: (C střed: s1 a: s3) skrýt hodnota: (C střed: s2 a: s3) skrýt hodnota: s3 hodnota: n-1.]].trojúhelník hodnota: 0@3 hodnota: 4@ -3 hodnota: -4@ -3 hodnota: 3.(C směřovat: 0@3) ukázat
Fibonacciho spirála
Fibonacciho spirála naprogramovaná s geometrickými transformacemi (rotace, translace a homotety):

|tvar plátna alfa fibo a b m s|plátno := DrGeoSketch Nový celá obrazovka.alfa := (plátno freeValue: -90 stupně ToRadians) skrýt.tvar := [:C :Ó :F| | e str | E := (plátno točit se: Ó centrum: C úhel: alfa) skrýt. (plátno arcCenter: C z: Ó na: E) velký. p := plátno přeložit: E vektor: (plátno vektor: C na: Ó) skrýt. (plátno polygon: { C. Ó. p skrýt. E }) název: F. E].fibo := [ ].fibo := [ :F :Ó :C :k | | e f1 f2 f3 c2|"f1: termín Fn-1, f2: termín Fn, o & c: počátek a střed spirálního ramenee: konec spirálového ramene " f1 := F První. f2 := F druhý. f3 := f1 + f2. E := tvar hodnota: C hodnota: Ó hodnota: f3. c2 := (plátno měřítko: C centrum: E faktor: f3 / f2) skrýt. k > 0 ifTrue: [ fibo hodnota: {f2. f3} hodnota: E hodnota: c2 hodnota: k - 1 ]].A := plátno směřovat: 1@0.b := plátno směřovat: -1 @0.m := (plátno střed: A a: b) skrýt.s := tvar hodnota: m hodnota: A hodnota: 1.tvar hodnota: m hodnota: s hodnota: 1.fibo hodnota: {1. 2} hodnota: b hodnota: A hodnota: 10
Newton-Raphsonův algoritmus
Pharo sktech lze použít k návrhu interaktivního náčrtu demonstrujícího metodu numerické analýzy:

| náčrt f df xn ptA ptB|skica := DrGeoSketch Nový osy zapnuto.xn := 2.F := [ :X | X cos + X ].„Odvodit číslo“df := [ :X | (F hodnota: X + 1e-8) - (F hodnota: X) * 1e8].skica spiknutí: F z: -20 na: 20.ptA := (skica směřovat: xn@0) velký; název: 'Táhni mě'.5 timesRepeat: [ ptB := skica směřovat: [ :pt | pt směřovat X @ (F hodnota: pt směřovat X)] rodič: ptA. ptB skrýt. (skica segment: ptA na: ptB) tečkovaný forwardArrow . ptA := skica směřovat: [:pt | | X | X := pt směřovat X. X - ( (F hodnota: X) / (df hodnota: X) ) @ 0 ] rodič: ptB. ptA skrýt. (skica segment: ptB na: ptA) tečkovaný forwardArrow].
Popsaný kruh ve francouzštině
Francouzská verze rozhraní Pharo sketch API umožňuje psaní zdrojového kódu v tomto jazyce:

| obrázek a b c m1 m2|postava := DrGeoSketch novinka.postava pleinEcran; afficherGrille; afficherAxes.A := postava segmentDe: 2@ 3 A: 0@0.A nommer: 'A'.b := postava segmentDe: 0@0 A: -1@2.b nommer: 'b'.C := postava segmentDe: -1@2 A: 2@3.C nommer: 'C'.m1 := (postava mediatrice: A) barva: Barva Červené.m2 := (postava mediatrice: b) barva: Barva Červené.(postava mediatrice: C) barva: Barva Červené.postava cercleCentre: (postava křižovatka De: m1 et: m2) passantPar: 0@0.(postava směřovat: 0@0) montrer
Ocenění
- Ocenění ESUG Innovation Technology Awards (Amsterdam, 2008)
- Ocenění AFUL Free Software Awards (Paříž, 2000)