WikiDer > DrGeo - Википедия
Оригинальный автор (ы) | Илер Фернандес |
---|---|
изначальный выпуск | 31 декабря 1996 г. |
Стабильный выпуск | 19.09 / 6 августа 2019 г. |
Репозиторий | |
Написано в | Pharo, Болтовня |
Операционная система | Linux, Mac OS X, Windows, Сахар |
Тип | Программное обеспечение для интерактивной геометрии |
Лицензия | GPL |
Интернет сайт | Drgeo |
GNU Dr. Geo это программное обеспечение для интерактивной геометрии, которое позволяет пользователям создавать и манипулировать интерактивными геометрическими эскизами. Это бесплатное программное обеспечение (исходный код, переводы, значки и установщик выпущены под GNU GPL лицензия), созданная Hilaire Fernandes, она является частью GNU проект. Морфический графическая система (что означает, что она работает в Linux, Mac OS, Windows, Android). Текущая версия Dr. Geo также называется Dr. Geo II. Исторически Dr. Geo разрабатывался на C ++, а Dr. Geo II полностью переписан с использованием Pharo это произошло в 2005 году. Эта статья относится к самой последней версии.
Объекты
Dr. Geo манипулирует различными типами объектов, такими как точки, линии, круги, блок кода.
Точки
В Dr.Geo есть несколько типов точек: свободная точка, которую можно перемещать с помощью мыши (но можно прикрепить к кривой), и точка, заданная ее координатами.
Баллы также могут быть созданы как пересечение 2 кривых или как середина из сегмент.
Линии
Доктор Гео оснащен классическим линия, луч, сегмент и вектор.
Другие криволинейные объекты включают круги (определяемые двумя точками, центром и сегментом или радиусом), дуги (определяемые тремя точками или центром и углом), многоугольники (правильные или нет, определяемые конечными точками) и места.
Трансформации
Помимо параллельной и перпендикулярной линии, проходящей через точку, Dr. Geo может применить к точке или прямой одно из следующих преобразований:
- отражение
- симметрия
- перевод
- вращение
- гомотетия
Макро-строительство
Доктор Гео предлагает макроконструкцию: способ научить доктора Гео новым построениям. Это позволяет добавлять новые объекты в Dr. Geo: новые преобразования, такие как инверсия круга, утомительные конструкции, включающие множество промежуточных объектов или конструкций, включающих скрипт (также называемый макрос-скриптом).
Когда некоторые объекты, называемые окончательный зависят от других объектов, называемых исходный, можно создать сложную конструкцию, выводящую конечные объекты из заданных пользователем исходных объектов. Это макростроение, граф взаимозависимых объектов.
Программирование
Доступ к пользовательскому программированию лежит в основе Dr. Geo: из программного обеспечения пользователь может напрямую читать, изучать, изменять и распространять модифицированную версию Dr. Geo. Дополнительно предлагается встроенный скрипт в скетч.
Исходный код Dr. Geo Pharo. Это также язык, используемый для пользовательского программирования: для расширения Dr. Geo с помощью произвольных вычислительных операций (сценарий Pharo) и для определения геометрического эскиза полностью с помощью инструкций по программированию (эскиз Pharo).
Dr. Geo поставляется с исходным кодом и инструментами разработчика. Поэтому его код можно редактировать и перекомпилировать из Dr. Geo во время его работы. Этот дизайн, унаследованный от Pharo, позволяет легко проверять новые идеи и новые разработки.
Скрипт Pharo
Сценарий - это объект первого класса определяется по коду Dr.Geo. Он имеет ноль, один или несколько аргументов из типов, выбранных при определении скрипта. Когда экземпляр скрипта подключается к холсту, пользователь сначала выбирает его аргументы на холсте щелчками мыши, а затем позицию на холсте вывода скрипта. Скрипт обновляется при каждом вычислении холста. Скрипты можно использовать каскадно, с одним аргументом для другого.[1]
Скрипт предназначен для использования двумя разными способами:
- Для вывода объекта (т.е. числового значения) и отображения его результата на холсте. Этот результат можно использовать при построении последующих объектов (геометрических или скриптовых).
- Для доступа к объектам на холсте: модель (MathItem) или вид (костюм) для произвольного использования и модификации. Например, чтобы изменить цвет объекта с учетом результата вычисления.
Из сценария модель аргументов достигается с помощью методов # arg1, # arg2 и т. Д. Доступ к представлению аргументов достигается с помощью методов # costume1, # costume2 и т. Д.
Вычисление сценария выполняется в его методе #compute. Например, чтобы вычислить квадрат числа, скрипт
вычислить"возвращает квадрат числа"^ себя arg1 valueItem в квадрате
создает числовой объект, значение которого является квадратом объекта числа аргумента. Каждый раз, когда изменяется первое число, значение, возвращаемое скриптом, также изменяется.
Эскиз Pharo
Эскизы доктора Гео Фаро - это эскизы, полностью написанные на языке Фаро. Речь идет не о построении эскиза с помощью графического интерфейса Dr. Geo, а об описании эскиза с помощью языка Pharo. Предоставляется программный интерфейс с простым и легким синтаксисом.[2]
Треугольник Серпинского
Вот как запрограммировать Треугольник Серпинского рекурсивно:
| треугольник c |c := DrGeoSketch новый.треугольник := [].треугольник := [:s1 :s2 :s3 :п | c сегмент: s1 к: s2; сегмент: s2 к: s3; сегмент: s3 к: s1. п >0 если правда: [ треугольник ценить: s1 ценить: (c середина: s1 и: s2) Спрятать ценить: (c середина: s1 и: s3) Спрятать ценить: п-1. треугольник ценить: (c середина: s1 и: s2) Спрятать ценить: s2 ценить: (c середина: s2 и: s3) Спрятать ценить: п-1. треугольник ценить: (c середина: s1 и: s3) Спрятать ценить: (c середина: s2 и: s3) Спрятать ценить: s3 ценить: п-1.]].треугольник ценить: 0@3 ценить: 4@ -3 ценить: -4@ -3 ценить: 3.(c точка: 0@3) Показать
Спираль Фибоначчи
Спираль Фибоначчи, запрограммированная с геометрическими преобразованиями (вращение, перенос и гомотетия):
|форма холста alfa fibo a b m s|холст := DrGeoSketch новый полноэкранный.альфа := (холст freeValue: -90 градусы) Спрятать.форма := [:c :о :ж| | e p | е := (холст повернуть: о центр: c угол: альфа) Спрятать. (холст arcCenter: c из: о к: е) большой. п := холст переведите: е вектор: (холст вектор: c к: о) Спрятать. (холст многоугольник: { c. о. п Спрятать. е }) имя: ж. е].фибо := [ ].фибо := [ :ж :о :c :k | | е f1 f2 f3 c2|"f1: член Fn-1, f2: член Fn, o & c: начало и центр спирального рукаваe: конец спирального рукава " f1 := ж первый. f2 := ж второй. f3 := f1 + f2. е := форма ценить: c ценить: о ценить: f3. c2 := (холст шкала: c центр: е фактор: f3 / f2) Спрятать. k > 0 если правда: [ фибо ценить: {f2. f3} ценить: е ценить: c2 ценить: k - 1 ]].а := холст точка: 1@0.б := холст точка: -1 @0.м := (холст середина: а и: б) Спрятать.s := форма ценить: м ценить: а ценить: 1.форма ценить: м ценить: s ценить: 1.фибо ценить: {1. 2} ценить: б ценить: а ценить: 10
Алгоритм Ньютона-Рафсона
Pharo sktech можно использовать для создания интерактивного эскиза, демонстрирующего метод численного анализа:
| эскиз f df xn ptA ptB|эскиз := DrGeoSketch новый AxesOn.xn := 2.ж := [ :Икс | Икс потому что + Икс ].«Производное число»df := [ :Икс | (ж ценить: Икс + 1e-8) - (ж ценить: Икс) * 1e8].эскиз участок: ж из: -20 к: 20.ptA := (эскиз точка: xn@0) большой; имя: "Перетащите меня".5 timesRepeat: [ ptB := эскиз точка: [ :pt | pt точка Икс @ (ж ценить: pt точка Икс)] родитель: ptA. ptB Спрятать. (эскиз сегмент: ptA к: ptB) пунктирный впередСтрелка . ptA := эскиз точка: [:pt | | Икс | Икс := pt точка Икс. Икс - ( (ж ценить: Икс) / (df ценить: Икс) ) @ 0 ] родитель: ptB. ptA Спрятать. (эскиз сегмент: ptB к: ptA) пунктирный впередСтрелка].
Описанный круг на французском языке
Французская версия API скетча Pharo позволяет писать исходный код на этом языке:
| рисунок а б в м1 м2|фигура := DrGeoSketch модерн.фигура PleinEcran; afficherGrille; AfficherAxes.а := фигура segmentDe: 2@ 3 а: 0@0.а номмер: 'а'.б := фигура segmentDe: 0@0 а: -1@2.б номмер: 'b'.c := фигура segmentDe: -1@2 а: 2@3.c номмер: 'c'.m1 := (фигура mediatrice: а) couleur: Цвет красный.m2 := (фигура mediatrice: б) couleur: Цвет красный.(фигура mediatrice: c) couleur: Цвет красный.фигура cercleCentre: (фигура crossctionDe: m1 et: m2) passantPar: 0@0.(фигура точка: 0@0) монтажник
Награды
- Награды ESUG за инновационные технологии (Амстердам, 2008 г.)
- Награды за бесплатное программное обеспечение AFUL (Париж, 2000 г.)