Jump to content

ДокторГео

Доктор ГНУ Гео
Оригинальный автор(ы) Хилари Фернандес
Первоначальный выпуск 31 декабря 1996 г .; 27 лет назад ( 1996-12-31 )
Стабильная версия
24.06 / 11 июня 2024 г .; 51 день назад ( 11.06.2024 )
Репозиторий
Написано в Cuis_Smalltalk , Smalltalk
Операционная система Linux , Mac OS X , Windows , Сахар
Тип Программное обеспечение для интерактивной геометрии
Лицензия лицензия GPL
Веб-сайт www .gnu .org /др-гео

GNU Dr. Geo — это программное обеспечение для интерактивной геометрии, которое позволяет пользователям создавать и манипулировать интерактивными геометрическими эскизами, включая динамические модели физики . [1] Это бесплатное программное обеспечение (исходный код, переводы, значки и установщик выпускаются под лицензией GNU GPL ), созданное Хилэром Фернандесом, оно является частью проекта GNU . Он работает на графической системе Morphic (это означает, что он работает на Linux, Mac OS, Windows, Android). Dr. Geo изначально был разработан на C++ со сценариями Scheme . [2] [3] затем в различных версиях Smalltalk с Squeak , Etoys_(programming_language) [4] за один ноутбук на ребенка [5] Фаро, затем Cuis-Smalltalk .

Доктор Гео манипулирует различными типами объектов, такими как точки, линии, круги, вектора, значения, геометрические преобразования, скрипты. [6]

В Dr. Geo есть несколько видов точек: свободная точка, которую можно перемещать мышью (но можно прикрепить к кривой), и точка, заданная своими координатами.

Точки также могут быть созданы как двух кривых или как середина сегмента пересечение .

Dr. Geo оснащен классическими линиями , лучами , сегментами и векторами .

Другие криволинейные объекты включают круги (определяемые двумя точками, центром и сегментом или радиусом), дуги (определяемые тремя точками или центром и углом), многоугольники (правильные или нет, определяемые конечными точками) и локусы .

Преобразования

[ редактировать ]

Кроме параллельной и перпендикулярной линии, проходящей через точку.

Доктор Гео может применить к точке или линии одно из следующих преобразований:

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

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

[ редактировать ]

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

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

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

[ редактировать ]

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

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

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

Скрипт Smalltalk

[ редактировать ]
Кривая и касательная
Кривая и ее тангенс рассчитаны с помощью сценариев Smalltalk.

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

  1. Чтобы вывести объект (т. е. числовое значение) и отобразить его результат на холсте. Этот результат можно использовать при построении последующих объектов (геометрических или скриптовых).
  2. Чтобы получить доступ к объектам на холсте: модели (MathItem) или их представлению (Costume) для произвольного использования и модификации. Например, чтобы изменить цвет объекта с учетом результата вычисления.
Редактирование живого сценария

Из сценария модель аргументов доступна с помощью сообщений #arg1, #arg2 и т. д. Доступ к представлению аргументов осуществляется с помощью сообщений #costume1, #costume2 и т. д.

Вычисления скрипта выполняются в его методе #compute. Например, чтобы вычислить квадрат числа, метод

compute
"returns the square of a number"
^ self arg1 valueItem squared

создает числовой объект, значением которого является квадрат его первого и уникального аргумента типа числового объекта. Всякий раз, когда изменяется первое число, возвращаемое скриптом значение также меняется.

Смолток-скетч

[ редактировать ]
Редактор эскизов Smalltalk

Эскизы Dr. Geo Smalltalk — это эскизы, полностью определенные на языке Smalltalk. Речь идет не о построении скетча с помощью графического интерфейса Dr.Geo, а об описании скетча языком Smalltalk. Предоставляется программный интерфейс с простым и легким синтаксисом. [10]

Smalltalk сам по себе является языком высокого уровня, тщательно разрабатываемым итеративно в течение примерно 10 лет в исследовательском центре Пало-Альто . Когда скетч описывается с помощью кода Smalltalk, используются все возможности языка: объектно-ориентированное программирование , переменная , коллекция , итератор , случайность , чтобы при каждом выполнении получать немного отличающийся скетч.

Скетч Smalltalk редактируется и тестируется с помощью редактора скетчей Smalltalk . Такой эскиз можно отладить и выполнить поэтапно. Его код сохраняется, как и любой исходный код, во внешнем текстовом файле в кодировке UTF-8 для поддержки родного языка.


Треугольник Серпинского

[ редактировать ]

Вот как рекурсивно запрограммировать треугольник Серпинского . Его красная внешняя вершина подвижна.

Вычисленный интерактивный треугольник Серпинского
| triangle c |
c := DrGeoSketch new.
triangle := [:s1 :s2 :s3 :n |
    c segment: s1 to: s2; segment: s2 to: s3; segment: s3 to: s1.
    n > 0 ifTrue: [
        triangle
            value: s1
            value: (c middleOf: s1 and: s2) hide
            value: (c middleOf: s1 and: s3) hide
            value: n-1.
        triangle
            value: (c middleOf: s1 and: s2) hide
            value: s2
            value: (c middleOf: s2 and: s3) hide
            value: n-1.
        triangle
            value: (c middleOf: s1 and: s3) hide
            value: (c middleOf: s2 and: s3) hide
            value: s3
            value: n-1]].
triangle value: 0@3 value:  4@ -3 value: -4@ -3 value: 3.
(c point: 0@3) show

Спираль Фибоначчи

[ редактировать ]

спираль Фибоначчи Запрограммированная [11] с геометрическими преобразованиями (вращением, сдвигом и гомотетией). Точки a и b полученного интерактивного эскиза являются подвижными.

Вычисленная интерактивная спираль Фибоначчи
|canvas shape alfa fibo a b m s|
canvas := DrGeoSketch new.
alfa := (canvas freeValue: -90 degreesToRadians) hide.
shape := [:c :o :f| | e p |
	e := (canvas rotate: o center: c angle: alfa) hide.
	(canvas arcCenter: c from: o to: e) large.
	p := canvas translate: e vector: (canvas vector: c to: o) hide.
	(canvas polygon: { c. o. p hide. e }) name: f.
	e].
fibo := [ ].
fibo := [ :f :o :c :k | | e f1 f2 f3 c2|
"f1: term Fn-1, f2: term Fn, o & c: origin and center of spiral arm
e: extremity of the spiral arm"
	f1 := f first.
	f2 := f second.
	f3 := f1 + f2.
	e := shape value: c value: o value: f3.	
	c2 := (canvas scale: c center: e factor: f3 / f2) hide.
	k > 0 ifTrue: [ fibo value: {f2. f3} value: e value: c2 value: k - 1 ]].

a := canvas point: 1@0.
b := canvas point: -1 @0.
m := (canvas middleOf: a and: b) hide.
s := shape value: m value: a value: 1.
shape value: m value: s value: 1.
fibo value: {1. 2} value: b value: a value: 10

Алгоритм Ньютона-Рафсона

[ редактировать ]

Smalltalk sktech можно использовать для создания интерактивного эскиза, иллюстрирующего метод численного анализа. Здесь алгоритм Ньютона-Рафсона за 5 шагов итерации.

Вычисленный интерактивный алгоритм Ньютона-Рафсона
| sketch f df xn ptA ptB|
sketch := DrGeoSketch new axesOn.
xn := 2.
f := [ :x | x cos + x ].
"Derivate number"
df := [ :x | (f value: x + 1e-8) - (f value: x) * 1e8].
sketch plot: f from: -20 to: 20.
ptA := (sketch point: xn@0) large; name: 'Drag me'.
5 timesRepeat: [ 
	ptB := sketch 
		point: [ :pt | pt point x @ (f value: pt point x)] 
		parent: ptA.
	ptB hide.
	(sketch segment: ptA to: ptB) dotted forwardArrow .
	ptA := sketch point: [:pt | 
		| x |
		x := pt point x.
		x - ( (f value: x) / (df value: x) )  @ 0 ] parent: ptB.
	ptA hide.
	(sketch segment: ptB to: ptA) dotted forwardArrow].

Языки локали

[ редактировать ]

Smalltalk Sketch можно писать на родных языках, в настоящее время на французском и испанском. Можно добавить больше родных языков.

См. также

[ редактировать ]
  1. ^ СК Хунг (2016). «Рисование параболической траектории объекта под действием силы тяжести» (PDF) . Проверено 14 января 2024 г.
  2. ^ А. Сентомо (2003). «Доктор Гео и геометрия Птолемея» (на итальянском языке) . Получено 13 января.
  3. ^ А. Чентомо, Ф. Кампора (2002). «Геометрия и программирование с Доктором Гео» (на итальянском языке) . Проверено 14 января 2024 г.
  4. ^ V. Freudenberg, Y. Ohshima, S. Wallace (2009). Etoys for One Laptop Per Child . C5.2009 . pp. 57–67. {{cite conference}}: CS1 maint: несколько имен: список авторов ( ссылка )
  5. ^ Г. Мело, А. Мачадо, А. Миранда (2014). «Влияние программы «Один ноутбук на ребенка» на обучение: данные из Уругвая» (PDF) . Проверено 14 января 2024 г. {{cite web}}: CS1 maint: несколько имен: список авторов ( ссылка )
  6. ^ К. Уиттум (2016). «Начните работу с Dr. Geo по геометрии» . opensource.com . Проверено 14 января 2024 г.
  7. ^ Х. Р. Фернандес Гарсия; К. Шнобер (июнь 2006 г.). «Интерактивная геометрия с Dr. Geo MATH HELPER» (PDF) . Журнал Линукс . Проверено 14 января 2024 г. .
  8. ^ А. Буссер (2011). «Доктор Гео, un docteur qui peut s'operer tout seul» [доктор Джео, доктор, который может работать сам». Гео, врач, который может сделать операцию самостоятельно] (на французском языке). revue.sesamath.net . Проверено 13 января 2024 г.
  9. ^ Видеоурок по сценарию Smalltalk.
  10. ^ Видео-демонстрация запрограммированного эскиза
  11. ^ Х. Фернандес (март 2016 г.). «Спираль Фибоначчи» . Проверено 6 января 2024 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9cd22530b848bbc627ef8b78171fd6de__1718208960
URL1:https://arc.ask3.ru/arc/aa/9c/de/9cd22530b848bbc627ef8b78171fd6de.html
Заголовок, (Title) документа по адресу, URL1:
DrGeo - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)