닥터거

DrGeo
GNU 닥터 지오
원저자힐레어 페르난데스
최초출시1996년 12월 31일; 27년 전 (1996-12-31)
안정적인 방출
23.12 / 2023년 12월 20일, 17일(2023-12-20)
저장소
작성자요리 - 스몰토크, 스몰토크
운영체제Linux, Mac OS X, Windows, Sugar
유형인터랙티브 지오메트리 소프트웨어
면허증.GPL
웹사이트www.gnu.org/s/dr-geo

GNU 닥터 지오(Dr. Geo)는 사용자가 상호 작용하는 기하학 스케치를 설계하고 조작할 수 있는 상호 작용 기하학 소프트웨어입니다. Hilaire Fernandes가 만든 자유 소프트웨어(소스 코드, 번역, 아이콘 및 설치 프로그램은 GNU GPL 라이선스로 출시됨)이며, GNU 프로젝트의 일부입니다. 이것은 모픽 그래픽 시스템(Linux, Mac OS, Windows, Android에서 실행됨을 의미함)을 통해 실행됩니다. 닥터 지오는 처음에는 C++에서 개발되었고, 그 다음에는 스칵, 파로, 그 다음에는 요리-스몰토크의 다양한 버전으로 개발되었습니다.

물건들

지오 박사는 점, 선, 원, 벡터, 값, 기하학적 변환, 스크립트와 같은 다양한 종류의 물체를 조작합니다.

포인트

지오 박사는 여러 종류의 점을 가지고 있습니다: 마우스로 움직일 수 있는 자유로운 점(하지만 곡선에 붙어 있을 수도 있음)과 좌표로 주어진 점.

점은 두 곡선의 교점 또는 세그먼트중간점으로도 만들 수 있습니다.

줄들

지오 박사는 고전적인 선, 광선, 세그먼트, 벡터를 갖추고 있습니다.

다른 곡선 객체에는 원(2점으로 정의됨, 중심과 세그먼트 또는 반지름), 원호(3점 또는 중심과 각도로 정의됨), 다각형(정규 여부, 끝점으로 정의됨) 및 loci가 포함됩니다.

변환

점을 통과하는 평행선과 수직선 외에.

지오 박사는 다음과 같은 변환 중 하나를 점이나 선에 적용할 수 있습니다.

  1. 반사 작용
  2. 대칭성
  3. 번역.
  4. 로테이션
  5. 동음이의

거시건설

지오 박사는 매크로 건설과 함께 나옵니다. 지오 박사에게 새로운 건설을 가르치는 방법입니다. 새로운 개체를 닥터에 추가할 수 있습니다. 지오(Geo): 원 반전과 같은 새로운 변환, 많은 중간 객체를 포함하는 지루한 구성 또는 스크립트(거시 스크립트라고도 함)를 포함하는 구성.

final이라고 하는 일부 개체가 initial이라고 하는 다른 개체에 의존하는 경우 사용자가 지정한 초기 개체에서 최종 개체를 추론하는 복잡한 구조를 만들 수 있습니다. 이것은 상호 의존적인 객체들의 그래프인 거시적 구성입니다.

프로그래밍

사용자 프로그래밍에 대한 접근은 닥터의 핵심입니다. Geo: 소프트웨어에서 사용자가 직접 Dr. Geo의 수정된 버전을 읽고, 공부하고, 수정하고, 재배포할 수 있습니다. 또한 스케치에 포함된 스크립팅이 제안됩니다.

닥터 지오 소스 코드는 스몰토크입니다. 사용자 프로그래밍에 사용되는 언어이기도 합니다: 닥터 지오를 임의의 컴퓨팅 작업(Smalltalk script)으로 확장하고 프로그래밍 명령어(Smalltalk sket)로 기하학적 스케치를 정의합니다.

지오 박사는 소스 코드와 개발자 도구와 함께 배송됩니다. 따라서 코드는 닥터로부터 편집 및 재컴파일이 가능합니다. 작동하는 동안 지오. Smalltalk에서 물려받은 이 디자인은 새로운 아이디어와 새로운 디자인을 쉽게 테스트할 수 있습니다.

스몰토크 스크립트

Curve and tangent
Smalltalk 스크립트로 계산된 곡선 및 접선

스크립트는 닥터 지오 코드를 따라 정의된 첫 번째 클래스 객체입니다. 스크립트를 정의할 때 선택한 유형에서 0개, 1개 또는 여러 개의 인수가 제공됩니다. 스크립트의 인스턴스가 캔버스에 연결되면 사용자는 먼저 마우스 클릭으로 캔버스에서 인수를 선택한 다음 스크립트 출력의 캔버스 위치를 선택합니다. 스크립트는 각 캔버스 계산 시 업데이트됩니다. 스크립트는 캐스케이드로 사용할 수 있으며, 하나는 다른 하나의 인수로 사용할 수 있습니다.[1] 스크립트는 다음 두 가지 방법으로 사용하도록 설계되었습니다.

  1. 객체(즉, 숫자 값)를 출력하고 결과를 캔버스에 표시합니다. 이 결과는 후속 객체(기하학 또는 스크립트)를 작성할 때 사용할 수 있습니다.
  2. 캔버스의 개체에 액세스하려면 모델(MathItem) 또는 임의 사용 및 수정을 위한 해당 보기(Costume)가 필요합니다. 예를 들어 계산 결과가 주어진 객체의 색상을 수정하는 것입니다.
실시간 스크립트 편집

스크립트에서 #arg1, #arg2 등의 메시지와 함께 인수 모델에 도달합니다. 인수 뷰는 #costume1, #costume2 등의 메시지와 함께 도달됩니다.

스크립트의 계산은 #comput 방식으로 수행됩니다. 예를 들어, 숫자의 제곱을 계산하기 위해서는 레이어 모드가 필요합니다.

계산해 보다 "숫자의 제곱을 returns합니다." ^ 자신 arg1 valueItem 제곱의 

숫자 개체를 만듭니다. 숫자 개체의 값은 해당 개체의 첫 번째 및 고유 인수인 type number 개체의 제곱입니다. 첫 번째 숫자가 변경될 때마다 스크립트 반환 값도 변경됩니다.

잡담스케치

스몰토크 스케치 편집기

닥터 지오 스몰토크 스케치는 스몰토크 언어로 완전히 정의된 스케치입니다. 이것은 닥터 지오그래픽 인터페이스로 스케치를 구성하는 것이 아니라 스몰토크 언어로 스케치를 설명하는 것입니다. 쉽고 가벼운 구문을 가진 프로그래밍 인터페이스가 제공됩니다.[2]

스몰토크 자체는 팔로 알토 리서치 센터에서 약 10년 동안 신중하게 반복적으로 만들어진 고급 언어입니다. Smalltalk 코드로 스케치를 설명할 때는 객체 지향 프로그래밍, 변수, 수집, 반복기, 무작위성 등 언어의 모든 기능을 사용하여 실행할 때마다 조금씩 다른 스케치를 얻을 수 있습니다.

Smalltalk 스케치는 Smalltalk 스케치 편집기로 편집 및 테스트됩니다. 이러한 스케치는 디버그 및 단계별 실행이 가능합니다. 코드는 다른 소스 코드와 마찬가지로 UTF-8로 인코딩된 외부 텍스트 파일에 저장되어 네이티브 언어를 지원합니다.


시에르핀스키 삼각형

시에르핀스키 삼각형을 재귀적으로 프로그래밍하는 방법은 다음과 같습니다. 빨간색 외부 정상은 이동식입니다.

컴퓨터 상호작용형 시에르핀스키 삼각형
  triangle c : = DrGeoSketch new. triangle : = [:s1 : s2 : s3 : n segment : s1 ~ s2; segment : s2 ~ s3; segment : s3 ~ s1. n > 0 참인 경우 [triangle value : s1 value : (c middleOf : s1 and : s2) 숨김 값 : (c middleOf : s1 and : s3) 숨김 값 : n-1. 삼각형 값: (c middleOf: s1s2) 숨김 : s2: (c middleOf: s2s3) 숨김: n-1. 삼각형 값: (c middleOf: s1 s3) 숨김: (c middleOf: s2 s3) 숨김 : s3: n-1]]. 삼각형 : 0@3 : 4@ -3 : -4@ -3  : 3. (c 포인트 : 0@3) show 

피보나치 나선형

기하학적 변환(회전, 병진 및 동형)으로 프로그래밍된[3] 피보나치 나선입니다. 생성된 대화형 스케치의 점 ab는 이동식입니다.

컴퓨터 상호작용 피보나치 나선형
 캔버스 모양 alfa fibo am scan := DrGeoSketch new. alfa := (canvas freeValue : -90도 To Radians) 숨김. shape := [:c :o :fe pe := (canvas 회전 : o center : cangle : alfa) 숨김.  (canvas arc Center: c부터: e까지) 대. p:= canvas translate: e vector: (canvas 벡터: c to: o) 숨김.  (canvas 다각형: {c.o.pide.e}) 이름: f.e. fibo : = [ ]. fibo : = [ :f : o :c : ke f1 f2 f3 c2 "f1 : term Fn-1, f2 : term Fn, o & c : spiral arm의 원점 및 중심: spiral arm의 말단" f1 : = f1 : f2 : = f2. f3 := f1 + f2. e := 형상값 : c : o  : f3. c2 := (canvas 눈금 : c 중심 : e factor : f3 / f2) 숨김. k >0 참인 경우: [ fibo: {f2. f3} 값: e 값: c2 값: k - 1 ]]. a := canvas point : 1@0. b : = canvas point : -1 @0. m := (canvas middleOf : a and : b) 숨깁니다. s : = 형상값 : m 값 : a 값 : 1. 형상값 : m 값 : s 값 : 1. fibo 값 : {1. 2} 값 : b 값 : a 값 : 10 

뉴턴-랩슨 알고리즘

스몰토크 기술을 사용하여 수치 분석 방법을 설명하는 대화형 스케치를 설계할 수 있습니다. 여기서 뉴턴-랩슨 알고리즘은 5단계 반복입니다.

컴퓨터 상호작용 뉴턴-랩슨 알고리즘
  sketch f df xnptAptB sketch := DrGeoSketch new axes On. xn : = 2. f : = [ : x x cos + x ]. "derivate number" df : = [ :x (f : x + 1e-8) - (f : x ) * 1e8]. 스케치 플롯 : f : -20 ~ : 20. ptA : = (sketch 포인트 : xn@0) 큰; 이름 : '드래그 미'. 5회 반복 : [ptB : = 스케치 포인트 : [ : pt pt point x @ (f 값 : pt pt point x))] 부모 : ptA. ptB 숨김.  (sketch 세그먼트: ptA ~ : ptB) 점선화살표 . ptA : = 스케치 포인트: [:pt x : = pt 포인트 x . x - (f 값: x ) / (df 값: x ) @ 0 ] 부모: ptB . ptA 숨김.  (스케치 세그먼트: ptB to: ptA) 점선으로 표시됨 화살표]. 

로케일 언어

스몰토크 스케치는 현재 프랑스어와 스페인어로 모국어로 코딩할 수 있습니다. 더 많은 모국어를 추가할 수 있습니다.

참고 항목

참고문헌

  1. ^ Smalltalk 스크립트의 비디오 튜토리얼
  2. ^ 프로그래밍된 스케치에 대한 비디오 시연
  3. ^ Hilaire, Fernandes (March 2016). "Fibonacci spiral". Retrieved 6 January 2024.

외부 링크