DrGeo - Википедия - DrGeo

GNU Dr. Geo
Талисман программного обеспечения геометрии DrGeo.
DrGeo, пример screenshot.png
Оригинальный автор (ы)Илер Фернандес
изначальный выпуск31 декабря 1996 г.; 23 года назад (1996-12-31)
Стабильный выпуск
19.09 / 6 августа 2019 г.; 16 месяцев назад (2019-08-06)
Репозиторий Отредактируйте это в Викиданных
Написано в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 может применить к точке или прямой одно из следующих преобразований:

  1. отражение
  2. симметрия
  3. перевод
  4. вращение
  5. гомотетия

Макро-строительство

Доктор Гео предлагает макроконструкцию: способ научить доктора Гео новым построениям. Это позволяет добавлять новые объекты в Dr. Geo: новые преобразования, такие как инверсия круга, утомительные конструкции, включающие множество промежуточных объектов или конструкций, включающих скрипт (также называемый макрос-скриптом).

Когда некоторые объекты, называемые окончательный зависят от других объектов, называемых исходный, можно создать сложную конструкцию, выводящую конечные объекты из заданных пользователем исходных объектов. Это макростроение, граф взаимозависимых объектов.

Программирование

Доступ к пользовательскому программированию лежит в основе Dr. Geo: из программного обеспечения пользователь может напрямую читать, изучать, изменять и распространять модифицированную версию Dr. Geo. Дополнительно предлагается встроенный скрипт в скетч.

Исходный код Dr. Geo Pharo. Это также язык, используемый для пользовательского программирования: для расширения Dr. Geo с помощью произвольных вычислительных операций (сценарий Pharo) и для определения геометрического эскиза полностью с помощью инструкций по программированию (эскиз Pharo).

Dr. Geo поставляется с исходным кодом и инструментами разработчика. Поэтому его код можно редактировать и перекомпилировать из Dr. Geo во время его работы. Этот дизайн, унаследованный от Pharo, позволяет легко проверять новые идеи и новые разработки.

Скрипт Pharo

Редактирование сценария в реальном времени

Сценарий - это объект первого класса определяется по коду Dr.Geo. Он имеет ноль, один или несколько аргументов из типов, выбранных при определении скрипта. Когда экземпляр скрипта подключается к холсту, пользователь сначала выбирает его аргументы на холсте щелчками мыши, а затем позицию на холсте вывода скрипта. Скрипт обновляется при каждом вычислении холста. Скрипты можно использовать каскадно, с одним аргументом для другого.[1]

Кривая и касательная
Кривая и касательная к ней вычислены с помощью скрипта Pharo

Скрипт предназначен для использования двумя разными способами:

  1. Для вывода объекта (т.е. числового значения) и отображения его результата на холсте. Этот результат можно использовать при построении последующих объектов (геометрических или скриптовых).
  2. Для доступа к объектам на холсте: модель (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) монтажник

Награды

Смотрите также

Рекомендации

внешняя ссылка