กลับไปหน้าบทความ

อ่าน 6 นาที

ดร.จีโอ

GNU Dr. Geo เป็นซอฟต์แวร์เรขาคณิตเชิงโต้ตอบที่ช่วยให้ผู้ใช้สามารถออกแบบและจัดการภาพร่างเรขาคณิตเชิงโต้ตอบ รวมถึงแบบจำลองทาง ฟิสิกส์ แบบ ไดนามิก [ 1 ] เป็นซอฟต์แวร์ฟรี (ซอร์สโค้ด...

ดร.จีโอ

GNU ดร.จีโอ
ผู้เขียนต้นฉบับฮิแลร์ เฟอร์นันเดส
ปล่อย31 ธันวาคม พ.ศ. 2539 ( 31 ธันวาคม 1996 )
เวอร์ชันเสถียร
24.06 / 11 มิถุนายน 2024 ( 11 มิถุนายน 2024 )
เขียนเป็นCuis_Smalltalk , Smalltalk
ระบบปฏิบัติการลินุกซ์ , แมคโอเอสเอ็กซ์ , วินโดวส์ , ชูการ์
พิมพ์ซอฟต์แวร์เรขาคณิตเชิงโต้ตอบ
ใบอนุญาตจีพีแอล
เว็บไซต์www.gnu.org/s/dr-geo
ที่เก็บข้อมูล
  • github.com/hilaire/drgeo.git

GNU Dr. Geoเป็นซอฟต์แวร์เรขาคณิตเชิงโต้ตอบที่ช่วยให้ผู้ใช้สามารถออกแบบและจัดการภาพร่างเรขาคณิตเชิงโต้ตอบ รวมถึงแบบจำลองทางฟิสิกส์ แบบ ไดนามิก[ 1 ]เป็นซอฟต์แวร์ฟรี (ซอร์สโค้ด การแปล ไอคอน และตัวติดตั้งเผยแพร่ภายใต้ ใบอนุญาต GNU GPL ) สร้างโดย Hilaire Fernandes ซึ่งเป็นส่วนหนึ่งของ โครงการ GNUทำงานบน ระบบกราฟิก Morphic (ซึ่งหมายความว่าทำงานบน Linux, Mac OS, Windows และ Android) Dr. Geo ได้รับการพัฒนาครั้งแรกใน C++ ด้วยสคริปต์Scheme [ 2 ] [ 3 ]จากนั้นในSmalltalk เวอร์ชันต่างๆ กับSqueak , Etoys [ 4 ]สำหรับOne Laptop per Child [ 5 ] , Pharoจากนั้นCuis- Smalltalk

วัตถุ

ดร.จีโอจัดการวัตถุประเภทต่างๆ เช่น จุด เส้น วงกลม เวกเตอร์ ค่า การแปลงทางเรขาคณิต และสคริปต์[ 6 ]

คะแนน

โปรแกรม Dr. Geo มีจุดอยู่หลายประเภท ได้แก่ จุดอิสระ ซึ่งสามารถเคลื่อนย้ายได้ด้วยเมาส์ (แต่อาจติดอยู่กับเส้นโค้ง) และจุดที่กำหนดโดยพิกัด

จุดสามารถสร้างขึ้นได้จากจุดตัดของเส้นโค้ง 2 เส้น หรือจากจุดกึ่งกลางของส่วน ของเส้น ตรง

เส้น

โปรแกรม Dr. Geo มีฟังก์ชันพื้นฐานสำหรับการคำนวณเส้นตรงรังสีส่วนโค้งและเวกเตอร์

วัตถุที่มีรูปทรงโค้งอื่นๆ ได้แก่ วงกลม (กำหนดโดย 2 จุด คือ จุดศูนย์กลางและส่วนของเส้นตรง หรือรัศมี) ส่วนโค้ง (กำหนดโดย 3 จุด หรือจุดศูนย์กลางและมุม) รูปหลายเหลี่ยม (รูปหลายเหลี่ยมปกติหรือไม่ปกติ กำหนดโดยจุดปลาย) และตำแหน่งเชิงมุม

การแปลง

นอกจากเส้นขนานและเส้นตั้งฉากที่ผ่านจุดหนึ่งแล้ว

ดร.จีโอสามารถใช้การแปลงอย่างใดอย่างหนึ่งต่อไปนี้กับจุดหรือเส้นตรงได้:

  1. การสะท้อน
  2. สมมาตร
  3. การแปล
  4. การหมุน
  5. โฮโมเทตี

การก่อสร้างระดับมหภาค

Dr. Geo มาพร้อมกับการสร้างแบบมาโคร: วิธีการสอน Dr. Geo ให้สร้างสิ่งก่อสร้างใหม่ๆ[ 7 ]วิธีนี้ช่วยให้สามารถเพิ่มวัตถุใหม่ๆ ลงใน Dr. Geo ได้ เช่น การแปลงแบบใหม่ๆ เช่นการกลับด้านวงกลมการสร้างที่ยุ่งยากซึ่งเกี่ยวข้องกับวัตถุตัวกลางจำนวนมาก หรือการสร้างที่เกี่ยวข้องกับสคริปต์ (เรียกอีกอย่างว่าสคริปต์มาโคร)

เมื่อวัตถุบางอย่างที่เรียกว่า"สุดท้าย"ขึ้นอยู่กับวัตถุอื่น ๆ ที่เรียกว่า " เริ่มต้น " เราสามารถสร้างโครงสร้างที่ซับซ้อนได้โดยการอนุมานวัตถุสุดท้ายจากวัตถุเริ่มต้นที่ผู้ใช้กำหนด นี่คือโครงสร้างระดับมหภาคซึ่งเป็นกราฟของวัตถุที่พึ่งพาซึ่งกันและกัน

การเขียนโปรแกรม

การเข้าถึงการเขียนโปรแกรมของผู้ใช้เป็นหัวใจสำคัญของ Dr. Geo: จากซอฟต์แวร์ ผู้ใช้สามารถอ่าน ศึกษา แก้ไข และเผยแพร่เวอร์ชันที่แก้ไขแล้วของ Dr. Geo ได้โดยตรง นอกจากนี้ ยังมีการเสนอการเขียนสคริปต์ฝังตัวอยู่ใน Sketch อีกด้วย

ซอร์สโค้ดของ Dr. Geo คือภาษาSmalltalkและยังเป็นภาษาที่ใช้สำหรับการเขียนโปรแกรมของผู้ใช้ด้วย เช่น การขยายขีดความสามารถของ Dr. Geo ด้วยการคำนวณแบบต่างๆ (Smalltalk script) และการกำหนดรูปทรงเรขาคณิตโดยใช้คำสั่งการเขียนโปรแกรมทั้งหมด (Smalltalk sketch)

Dr. Geo มาพร้อมกับซอร์สโค้ดและเครื่องมือสำหรับนักพัฒนา ดังนั้นจึงสามารถแก้ไขและคอมไพล์โค้ดใหม่ได้จาก Dr. Geo ในขณะที่กำลังทำงานอยู่[ 8 ]การออกแบบนี้ซึ่งสืบทอดมาจาก Smalltalk ทำให้การทดสอบแนวคิดใหม่และการออกแบบใหม่เป็นเรื่องง่าย

สคริปต์ Smalltalk

เส้นโค้งและเส้นสัมผัส
เส้นโค้งและเส้นสัมผัสที่คำนวณด้วยสคริปต์ Smalltalk

สคริปต์เป็นวัตถุชั้นหนึ่งที่กำหนดตามโค้ด Dr. Geo โดยมีอาร์กิวเมนต์เป็นศูนย์ หนึ่ง หรือหลายตัว จากประเภทที่เลือกเมื่อกำหนดสคริปต์ เมื่อเสียบอินสแตนซ์ของสคริปต์ลงในผืนผ้าใบ ผู้ใช้จะเลือกอาร์กิวเมนต์ในผืนผ้าใบด้วยการคลิกเมาส์ก่อน จากนั้นจึงเลือกตำแหน่งในผืนผ้าใบของเอาต์พุตสคริปต์ สคริปต์จะได้รับการอัปเดตในการคำนวณผืนผ้าใบแต่ละครั้ง สคริปต์สามารถใช้แบบเรียงลำดับได้ โดยใช้สคริปต์หนึ่งเป็นอาร์กิวเมนต์ของอีกสคริปต์หนึ่ง[ 9 ] สคริปต์ได้รับการออกแบบให้ใช้งานในสองวิธีที่แตกต่างกัน:

  1. เพื่อส่งออกวัตถุ (เช่น ค่าตัวเลข) และแสดงผลลัพธ์บนผืนผ้าใบ ผลลัพธ์นี้สามารถนำไปใช้ในการสร้างวัตถุถัดไป (รูปทรงเรขาคณิตหรือตัวอักษร) ได้
  2. ในการเข้าถึงวัตถุบนผืนผ้าใบ: โมเดล (MathItem) หรือมุมมอง (Costume) ของวัตถุนั้น เพื่อการใช้งานและการแก้ไขตามต้องการ ตัวอย่างเช่น การแก้ไขสีของวัตถุโดยอิงจากผลลัพธ์ของการคำนวณ
การแก้ไขสคริปต์แบบเรียลไทม์

จากสคริปต์ การเข้าถึงโมเดลอาร์กิวเมนต์จะใช้ข้อความ #arg1, #arg2 เป็นต้น ส่วนการเข้าถึงวิวอาร์กิวเมนต์จะใช้ข้อความ #costume1, #costume2 เป็นต้น

การคำนวณสคริปต์จะทำในเมธอด #compute ของมัน ตัวอย่างเช่น ในการคำนวณกำลังสองของตัวเลข จะใช้เมธอด #compute

คำนวณ"คืนค่ากำลังสองของตัวเลข" ^ self arg1 valueItem squared

สร้างอ็อบเจ็กต์ตัวเลข ซึ่งมีค่าเป็นกำลังสองของอาร์กิวเมนต์ตัวแรกและตัวเดียวที่เป็นประเภทอ็อบเจ็กต์ตัวเลข เมื่อใดก็ตามที่ตัวเลขตัวแรกเปลี่ยนแปลง ค่าที่ส่งคืนจากสคริปต์ก็จะเปลี่ยนแปลงไปด้วย

สเก็ตช์บทสนทนาเล็กๆ

โปรแกรมแก้ไขร่าง Smalltalk

สเก็ตช์ Dr. Geo Smalltalk คือสเก็ตช์ที่กำหนดขึ้นทั้งหมดในภาษา Smalltalk นี่ไม่ใช่การสร้างสเก็ตช์ด้วยอินเทอร์เฟซกราฟิกของ Dr. Geo แต่เป็นการอธิบายสเก็ตช์ด้วยภาษา Smalltalk มีอินเทอร์เฟซการเขียนโปรแกรมที่มีไวยากรณ์ที่ง่ายและเบา[ 10 ]

Smalltalkเป็นภาษาโปรแกรมระดับสูงที่ได้รับการพัฒนาอย่างพิถีพิถันเป็นเวลาประมาณ 10 ปีที่ศูนย์วิจัย Palo Altoเมื่อมีการเขียนโค้ด Smalltalk เพื่ออธิบายสเก็ตช์ (sketch) คุณสมบัติทั้งหมดของภาษาจะถูกนำมาใช้ ได้แก่การเขียนโปรแกรมเชิงวัตถุ ตัวแปร คอ ลเลกชัน ตัว วนซ้ำและความสุ่ม เพื่อให้ได้ส เก็ตช์ที่แตกต่างกันเล็กน้อยในแต่ละครั้งที่ประมวลผล

โค้ด 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 ]] . ค่า สามเหลี่ยม: 0 @ 3 ค่า: 4 @ -3 ค่า: -4 @ -3 ค่า: 3 . ( จุดc : 0 @ 3 ) แสดง

เกลียวฟิโบนาชี่

เกลียวฟิโบนาชี่ที่ตั้งโปรแกรมไว้[ 11 ]ด้วยการแปลงทางเรขาคณิต (การหมุน การเลื่อน และโฮโมเทตี) จุดaและbของภาพร่างแบบโต้ตอบที่ได้นั้นสามารถเคลื่อนที่ได้

เกลียวฟิโบนาชี่แบบโต้ตอบที่คำนวณได้
| รูปร่างผืนผ้าใบ อัลฟา ฟิโบ abms | ผืนผ้าใบ:= DrGeoSketch ใหม่. อัลฟา:= ( ค่าอิสระของ ผืนผ้าใบ: -90 องศาเป็นเรเดียน ) ซ่อน. รูปร่าง:= [ : c : o : f | | ep | e := ( หมุนผืนผ้าใบ : o จุดศูนย์กลาง: c มุม: อัลฟา ) ซ่อน. ( จุดศูนย์กลางส่วนโค้ง ของผืนผ้าใบ: c จาก: o ถึง: e ) ขนาดใหญ่. p := แปลผืนผ้าใบ : e เวกเตอร์: ( เวกเตอร์ ผืนผ้าใบ: c ถึง: o ) ซ่อน. ( รูปหลายเหลี่ยม ผืนผ้าใบ: { c . o . p ซ่อน. e }) ชื่อ: f . e ] . ฟิโบ:= [ ] . ฟิโบ:= [ : f : o : c : k | | e f1 f2 f3 c2 | "f1: เทอม Fn-1, f2: เทอม Fn, o & c: จุดกำเนิดและจุดศูนย์กลางของแขนเกลียวe: จุดปลายของแขนเกลียว" f1 := f แรก. f2 := f ที่สอง. f3 := f1 + f2 . e := ค่ารูปร่าง : ค่า c : ค่า o : ค่าf3 . c2 := ( มาตราส่วนของ ผืนผ้าใบ: จุดศูนย์กลาง c : ตัวประกอบe : f3 / f2 ) ซ่อน. k > 0 ถ้าเป็นจริง: [ ค่าfibo : { f2 . f3 } ค่า: ค่า e : ค่า c2 ค่า: k - 1 ]] .a := จุดบน ผืนผ้าใบ: 1 @ 0 b := จุดบน ผืนผ้าใบ: -1 @ 0 m : = ( จุด กึ่งกลาง บนผืนผ้าใบ: a และ: b ) ซ่อนs := ค่ารูปร่าง : m ค่า: a ค่า: 1 ค่า รูปร่าง: m ค่า: s ค่า: 1 ค่าฟิโบ: { 1 . 2 } ค่า: b ค่า: a ค่า : 10

อัลกอริทึมนิวตัน-ราฟสัน

Smalltalk sktech สามารถใช้ในการออกแบบภาพสเก็ตช์แบบโต้ตอบเพื่อแสดงวิธีการวิเคราะห์เชิงตัวเลขได้ ในที่นี้คืออัลกอริทึม Newton-Raphsonในการวนซ้ำ 5 ขั้นตอน

อัลกอริทึม Newton-Raphson แบบโต้ตอบที่คำนวณได้
| 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 ได้ด้วยภาษาพื้นเมือง ปัจจุบันมีภาษาฝรั่งเศสและสเปน และจะเพิ่มภาษาพื้นเมืองอื่นๆ ในอนาคต

รางวัล

  • รางวัลนวัตกรรมเทคโนโลยี ESUG (อัมสเตอร์ดัม, 2008)
  • รางวัลซอฟต์แวร์เสรี AFUL (ปารีส, 2000)

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=DrGeo&oldid=1351138638 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ดร.จีโอ

GNU Dr. Geo เป็นซอฟต์แวร์เรขาคณิตเชิงโต้ตอบที่ช่วยให้ผู้ใช้สามารถออกแบบและจัดการภาพร่างเรขาคณิตเชิงโต้ตอบ รวมถึงแบบจำลองทาง ฟิสิกส์ แบบ ไดนามิก [ 1 ] เป็นซอฟต์แวร์ฟรี (ซอร์สโค้ด...

วัตถุ

ดร.จีโอจัดการวัตถุประเภทต่างๆ เช่น จุด เส้น วงกลม เวกเตอร์ ค่า การแปลงทางเรขาคณิต และสคริปต์ [ 6 ]

คะแนน

โปรแกรม Dr. Geo มีจุดอยู่หลายประเภท ได้แก่ จุดอิสระ ซึ่งสามารถเคลื่อนย้ายได้ด้วยเมาส์ (แต่อาจติดอยู่กับเส้นโค้ง) และจุดที่กำหนดโดยพิกัด

เส้น

โปรแกรม Dr. Geo มีฟังก์ชันพื้นฐานสำหรับการคำนวณเส้น ตรง รังสี ส่วน โค้ง และ เวก เตอร์