Module
Contents
Index 🔎︎

# LibreLogo

LibreLogo គឺជា​បរិស្ថាន​កម្មវិធី​ដែល​បាន​បកប្រែ ងាយស្រួល Logo-like ជាមួយ​ក្រាហ្វិក​វ៉ិចទ័រ​អណ្ដើក​សម្រាប់​បង្រៀន​គណនា (កម្មវិធី និង​ការ​វាយ​អត្ថបទ), DTP និង​ការ​រចនា​ក្រាហ្វិក។ សូម​មើល http://www.numbertext.org/logo/librelogo.pdf ។

## របារ​ឧបករណ៍ LibreLogo

The LibreLogo toolbar (View - Toolbars - Logo) contains turtle moving, program start, stop, home, clear screen, program editor/syntax highlighting/translating icons and an input bar (command line).

## រូបតំណាង​ចលនា​អណ្ដើក

វា​សមមូល​ទៅ​នឹង​ពាក្យ​បញ្ជា​រូប​សញ្ញា “FORWARD 10”, “BACK 10”, “LEFT 15”, “RIGHT 15” ។ ការ​ចុច​លើ​រូបតំណាង​ ក៏​នឹង​ផ្ដោត​​រូបរាង​អណ្ដើក​​ឲ្យ​រមូរ​ទំព័រ​ទៅកាន់​ទីតាំង​របស់​វា​ផង​ដែរ។

## ចាប់ផ្ដើម​កម្មវិធី​ឡូហ្គោ

ចុច​នៅ​លើ​រូបតំណាង “ចាប់ផ្ដើម​កម្មវិធី​ឡូហ្គោ” ដើម្បី​ប្រតិបត្តិ​អត្ថបទ (ឬ​បាន​ជ្រើស​តែ) អត្ថបទ​នៃ​ឯកសារ Writer ជា​កម្មវិធី LibreLogo ។ នៅ​ក្នុង​ឯកសារ​ទទេ ឧទាហរណ៍​កម្មវិធី​នឹង​ត្រូវ​បាន​បញ្ចូល និង​ប្រតិបត្តិ។

ចុច​នៅ​លើ “Stop” ដើម្បី​បញ្ឈប់​ការ​ប្រតិបត្តិ​កម្មវិធី។

## ដើម

ចុច​នៅ​លើ​រូបតំណាង “ដើម” ដើម្បី​កំណត់​ទីតាំង ហើយ​កំណត់ turtle ។

## សម្អាត​អេក្រង់

ចុច​លើ​រូបតំណាង “សម្អាត​អេក្រង់” ដើម្បី​យកចេញ​ធាតុ​គំនូរ​នៃ​ឯកសារ។

## កម្មវិធី​កែ/ផ្នែក​សំខាន់​វាក្យ​សម្ពន្ធ/ការ​បកប្រែ កម្មវិធី

The “magic wand” icon sets 2-page layout for program editing, expands and converts to uppercase the abbreviated, lowercase Logo commands in the Writer document. Change the language of the document (Tools - Options - Language Settings - Languages - Western) and click on this icon to translate the Logo program to the selected language.

## បន្ទាត់​ពាក្យ​បញ្ជា

ចុច​បញ្ចូល​ក្នុង​បន្ទាត់​ពាក្យ​បញ្ជា ដើម្បី​ប្រតិបត្តិ​មាតិកា​របស់​វា។ ដើម្បី​បញ្ឈប់​កម្មវិធី​ប្រើ​រូបតំណាង “Stop” ។

សង្កត់​គ្រាប់ចុច​បញ្ចូល (Enter) ដើម្បី​ដំណើរការ​បន្ទាត់​ពាក្យ​បញ្ជា​ម្ដងទៀត ឧទាហរណ៍​នៅ​លើ​លំដាប់​ពាក្យ​បញ្ជា​ដូច​ខាងក្រោម៖

     FORWARD 200 LEFT 89

ដើម្បី​កំណត់​ពាក្យ​បញ្ជា​ឡើងវិញ ត្រូវ​ចុច​លើ​ជ្រុង​បី ឬ​ចុច Ctrl-A ដើម្បី​ជ្រើស​ពាក្យ​បញ្ជា​ពី​មុន រួច​វាយ​ពាក្យ​បញ្ជា​ថ្មី។

## ក្រាហ្វិក​ចំណុច​ប្រទាក់​អ្នកប្រើ​របស់​ការ​កំណត់​អណ្ដើក

រូបរាង​អណ្ដើក​របស់ LibreLogo គឺជា​វត្ថុ​គំនូរ​ទំហំ​ថេរ​ធម្មតា។ អ្នក​អាច​កំណត់​ទីតាំង និង​បង្វិល​វា​តាម​របៀប​ស្តង់ដារ​បាន ដោយ​ប្រើ​កណ្ដុរ និង​រូបតំណាង​បង្វិល​នៃ​របារ​ឧបករណ៍​លក្ខណសម្បត្តិ​វត្ថុ​គំនូរ។ កែប្រែ​ការ​កំណត់​ទទឹង​បន្ទាត់ ពណ៌​បន្ទាត់ និង​ពណ៌​ផ្ទៃ​របស់​រូបរាង​អណ្ដើក​ដើម្បី​កំណត់​គុណ​លក្ខណៈ​ទំហំ​ប៊ិច ពណ៌​ប៊ិច និង​ពណ៌​បំពេញ​របស់ LibreLogo​។

## កម្មវិធី​កែសម្រួល

កម្មវិធី និង​គំនូរ​រូបភាព​របស់ LibreLogo ប្រើ​ឯកសារ Writer ដូច​គ្នា។ រូបភាព LibreLogo គឺ​នៅ​លើ​ទំព័រ​ដំបូង​នៃ​ឯកសារ Writer ។ អ្នក​អាច​បញ្ចូល​ការ​ចុះ​បន្ទាត់​មុន​កម្មវិធី LibreLogo និង​កំណត់​ការ​បង្រីក​ទំព័រ​ដោយ​ប្រើ​រូបតំណាង “magic wand” នៃ​របារ​ឧបករណ៍​រូប​សញ្ញា, មាន​ការ​ផ្លាស់ប្ដូរ​ទំហំ​ពុម្ព​អក្សរ​ផង​ដែរ​សម្រាប់​ប្លង់​ទំព័រ​ ២ សម្រាប់​ការ​សរសេរ​កម្មវិធី​របស់ LibreLogo ៖ ទំព័រ (ដំបូង) ខាង​ឆ្វេង​ជា​រូបភាព, ទំព័រ (ទីពីរ) ខាង​ស្ដាំ​ជា​កម្មវិធី​កែសម្រួល​កម្មវិធី​របស់ LibreLogo ។

# ភាសា​កម្មវិធី LibreLogo

LibreLogo គឺជា​ភាសា​កម្មវិធី Logo-like ដែល​អាច​បកប្រែ​បាន​យ៉ាង​ងាយស្រួល ហើយ​បាន​បកប្រែ​ជា​ភាសា​មួយ​ចំនួន​ដោយ​សហគមន៍​ភាសា​ដើម​របស់ LibreOffice ។ វា​ឆបគ្នា​ខាងក្រោយ​ជាមួយ​ប្រព័ន្ធ Logo ដែល​ចាស់​ជាង ក្នុង​ករណី​ដែល​កម្មវិធី Logo ធម្មតា​ត្រូវ​បាន​ប្រើ​ក្នុង​ការ​អប់រំ ឧទាហរណ៍។

     TO triangle :size
     REPEAT 3 [
       FORWARD :size
       LEFT 120
     ]
     END

     triangle 10 triangle 100 triangle 200

## ខុស​ពី​ភាសា​កម្មវិធី​រូបសញ្ញា

- បញ្ជី​សមាជិក​ត្រូវ​បាន​បំបែក​ដោយ​សញ្ញា​ក្បៀស៖ POSITION [0, 0]

- ប្លុក និង​បញ្ជី​កម្មវិធី​គឺ​ខុសគ្នា

- - ប្លុក​កម្មវិធី​ត្រូវការ​ដកឃ្លា ឬ​ជួរ​ថ្មី​នៅ​ពេល​ដាក់​ក្នុង​វង់ក្រចក៖ REPEAT 10 [ FORWARD 10 LEFT 36 ]

  - បញ្ជី​ទាមទារ​បិទ​វង់ក្រចក៖ POSITION [0, 0], and not POSITION [ 0, 0 ]

- មិន​បាន​គាំទ្រ​ការ​ប្រកាស​អនុគមន៍ 1-line (TO និង END ត្រូវការ​បន្ទាត់​ថ្មី)។

## លក្ខណៈ​ផ្សេងទៀត​របស់ LibreLogo

- សញ្ញា​ចុច​ពីរ (:) ជា​ជម្រើស​នៅ​មុខ​ឈ្មោះ​អថេរ។

       TO ទំហំ​ត្រីកោណ
         REPEAT 3 [ FORWARD size LEFT 120 ]
       END

- ចំណារ​ខ្សែ​អក្សរ​គាំទ្រ​អក្ខរាវិរុទ្ធ និង​វាក្យសម្ពន្ធ Python ផង​ដែរ។

       PRINT "ពាក្យ ; វាក្យសម្ពន្ធ Logo ដើម
       PRINT “អត្ថបទ​បំពាន” ; អក្ខរាវិរុទ្ធ Writer
       PRINT 'អត្ថបទ​បំពាន' ; វាក្យសម្ពន្ធ Python

- បញ្ជី Python និង​ខ្សែ​អក្សរ​ដោះស្រាយ

       PRINT “text”[2] ; print “x”
       PRINT “text”[1:3] ; print “ex”

- Python-like FOR loop

- ការ​ប្រកាស​អថេរ Python-like ៖

       x = 15
       PRINT x

- គ្មាន​អនុគមន៍​សំណួរ​បន្ថែម​ទេ៖

       PRINT FILLCOLOR
       p = POSITION
       PRINT p
       REPEAT 10 [ POSITION ANY POSITION p ]

- ការ​ដាក់​រង្វង់​ក្រចក​ឆ្លាស់​នៅ​ក្នុង​អនុគមន៍​ហៅ

       TO star size color
       FILLCOLOR color
       REPEAT 5 [ LEFT 72 FORWARD size RIGHT 144 FORWARD size ]
       FILL
       END

       star 100 “red”
       star (100, “green”)
       star(100, “blue”)

# ពាក្យ​បញ្ជា LibreLogo

## វាក្យសម្ពន្ធ​មូលដ្ឋាន

### ប្រកាន់​អក្សរ​តូច​ធំ

ពាក្យ​បញ្ជា និង​ពណ៌​គឺ​មិន​ប្រកាន់​អក្សរ​តូច​ធំ៖

     PRINT “Hello, World!”
     បង្ហាញ “Hello, World, again!”

ឈ្មោះ​អថេរ​គឺ​ប្រកាន់​អក្សរ​តូច​ធំ៖

     a = 5
     A = 7
     PRINT a
     PRINT A

### បន្ទាត់​កម្មវិធី

បន្ទាត់​របស់​កម្មវិធី LibreLogo គឺជា​កថាខណ្ឌ​នៅ​ក្នុង​ឯកសារ LibreOffice Writer ។ បន្ទាត់​កម្មវិធី​អាច​មាន​ពាក្យ​បញ្ញា​ច្រើន។

     PRINT “Hello, World!” PRINT “LibreLogo”

### មតិយោបល់

ផ្នែក​បន្ទាត់​គឺជា​សេចក្ដី​អធិប្បាយ​ចាប់ពី​សញ្ញា​ចំណុច​ក្បៀស​ទៅ​ចុង​បន្ទាត់ (កថាខណ្ឌ)៖

     ; សេចក្ដី​អធិប្បាយ
     PRINT 5 * 5 ; សេចក្ដី​អធិប្បាយ

### បំបែក​បន្ទាត់​កម្មវិធី​ជា​កថាខណ្ឌ​ច្រើន

វា​អាច​បំបែក​បន្ទាត់​កម្មវិធី​សម្រាប់​កថាខណ្ឌ​ច្រើន​ដោយ​ប្រើ​សញ្ញា ~ នៅ​ចុង​បន្ទាត់៖

     PRINT “វា​គឺ​វែង​ណាស់ ” + ~
           “សារ​ព្រមាន”

## ចលនា​អណ្ដើក

### FORWARD (fd)

     FORWARD 10 ; បញ្ជូន​បន្ត​ទៅ​មុខ 10pt (1pt = 1/72 inch)
     FORWARD 10pt ; មើល​ខាងលើ
     FORWARD 0.5in ; ផ្លាស់ទី​ទៅមុខ 0.5 inch (1 inch = 2.54 cm)
     FORWARD 1" ; មើល​ខាងលើ
     FD 1mm
     FD 1cm

### BACK (bk)

     BACK 10 ; ផ្លាស់ទី​ថយក្រោយ 10pt

### LEFT (lt)

     LEFT 90 ; បង្វិល 90 ដឺក្រេ​ច្រាស​ទ្រនិច​នាឡិកា
     LEFT 90° ; មើល​ខាងលើ
     LT 3h ; មើល​ខាងលើ (ទីតាំង​នាឡិកា)
     LT any ; បង្វិល​ទៅ​ទីតាំង​ចៃដន្យ

### RIGHT (rt)

     RIGHT 90 ; បង្វិល ៩០ ដឺក្រេ​ស្រប​ទ្រនិច​នាឡិកា

### PENUP (pu)

     PENUP ; អណ្ដើក​នឹង​ផ្លាស់ទី​ដោយ​គ្មាន​ស្នាម

### PENDOWN (pd)

     PENDOWN ; អណ្ដើក​នឹង​ផ្លាស់ទី​ជាមួយ​គំនូរ

### POSITION (pos)

     POSITION [0, 0] ; បង្វិល និង​ផ្លាស់ទី​​ទៅ​ជ្រុង​លើ​ខាង​ឆ្វេង
     POSITION PAGESIZE ; បង្វិល និង​ផ្លាស់ទី​​ទៅ​ជ្រុង​ក្រោម​ខាង​ស្ដាំ
     POSITION [PAGESIZE[0], 0] ; បង្វិល និង​ផ្លាស់ទី​​ទៅ​ជ្រុង​លើ​ខាង​ស្ដាំ
     POSITION ANY ; បង្វិល និង​ផ្លាស់ទី​​ទៅ​ទីតាំង​ចៃដន្យ

### HEADING (seth)

     HEADING 0 ; ត្រឡប់​ទៅ​ខាងជើង
     HEADING 12h ; មើល​ខាងលើ
     HEADING [0, 0] ; ត្រឡប់​ទៅ​ជ្រុង​លើ​ខាងឆ្វេង
     HEADING ANY ; ត្រឡប់​ទៅ​ទិសដៅ​ចៃដន្យ

## ពាក្យ​បញ្ជា​អណ្ដើក​ផ្សេងទៀត

### HIDETURTLE (ht)

     HIDETURTLE ; លាក់​អណ្ដើក (រហូតដល់​ពាក្យ​បញ្ជា​បង្ហាញ​អណ្ដើក)

### SHOWTURTLE (st)

     SHOWTURTLE ; បង្ហាញ​អណ្ដើក

### HOME

     HOME ; reset initial turtle position

### CLEARSCREEN (cs)

     CLEARSCREEN ; លុប​វត្ថុ​គំនូរ​របស់​ឯកសារ​ចេញ

### FILL និង CLOSE

     FILL ; close and fill the actual line shape or points
     CLOSE ; close the actual line shape or join the actual points

Example: filling a regular triangle:

     FORWARD 50 LEFT 120 FORWARD 50 FILL

Example: drawing a regular triangle:

     FORWARD 50 LEFT 120 FORWARD 50 CLOSE

## ការ​កំណត់​ប៊ិច

### PENSIZE (ps)

     PENSIZE 100 ; ទទឹង​បន្ទាត់​គឺ ១០០ ចំណុច
     PENSIZE ANY ; សមមូល​នឹង PENSIZE RANDOM 10

### PENCOLOR/PENCOLOUR (pc)

     PENCOLOR “red” ; កំណត់​ពណ៌​ប៊ិច​ក្រហម (ដោយ​ឈ្មោះ​ពណ៌ មើល​លំនឹង​ពណ៌)
     PENCOLOR [255, 255, 0] ; កំណត់​ពណ៌លឿង (បញ្ជី RGB)
     PENCOLOR 0xffff00 ; កំណត់​ពណ៌លឿង (កូដ​គោល​ដប់​ប្រាំមួយ)
     PENCOLOR 0 ; កំណត់​ពណ៌ខ្មៅ (0x000000)
     PENCOLOR ANY ; ពណ៌​ចៃដន្យ
     PENCOLOR [5] ; កំណត់​ពណ៌ក្រហម (ដោយ​គ្រឿង​សម្គាល់​ពណ៌ មើល​លំនឹង​ពណ៌)
     PENCOLOR “invisible” ; បិទ​ពណ៌​ប៊ិច​សម្រាប់​រូបរាង​ដោយ​មើល​មិន​ឃើញ​គែម
     PENCOLOR “~red” ; កំណត់​ពណ៌ក្រហម​ចៃដន្យ

### ភាព​​ថ្លា

     PENTRANSPARENCY 80 ; កំណត់​ភាព​ថ្លា​នៃ​ពណ៌​​របស់​ប៊ិក​ជាក់ស្ដែង​ដល់ 80%

### PENCAP/LINECAP

     PENCAP “none” ; គ្មាន​បន្ទាត់​បន្ថែម​នៅ​ចុង (លំនាំដើម)
     PENCAP “round” ; បន្ទាត់​មូល​នៅ​ចុង
     PENCAP “square” ; បន្ទាត់​ការ៉េ​នៅ​ចុង

### PENJOINT/LINEJOINT

     PENJOINT “rounded” ; ភ្ជាប់​បន្ទាត់​ជា​រង្វង់ (លំនាំដើម)
     PENJOINT “miter” ; ភ្ជាប់​បន្ទាត់​ស្រួច
     PENJOINT “bevel” ; ភ្ជាប់​បន្ទាត់​ទេរ
     PENJOINT “none” ; ដោយ​មិន​ភ្ជាប់​បន្ទាត់

### PENSTYLE

     PENSTYLE “solid” ; បន្ទាត់​ជាប់ (លំនាំដើម)
     PENSTYLE “dotted” ; បន្ទាត់​ចុចៗ
     PENSTYLE “dashed” ; បន្ទាត់​ដាច់ៗ

     ; លំនាំ​ចុចៗ​ដាច់ៗ​ផ្ទាល់ខ្លួន​ដែល​បាន​បញ្ជាក់​ដោយ​បញ្ជី​ដែល​មាន​អាគុយម៉ង់​ដូច​ខាងក្រោម៖
     ; – ចំនួន​ចុចៗ​ដែល​នៅ​ជិត
     ; – ប្រវែង​ចំណុច
     ; – ចំនួន​បន្ទាត់​ដាច់ៗ​ដែល​នៅ​ជិត
     ; – ប្រវែង​បន្ទាត់​ដាច់ៗ
     ; – ចម្ងាយ​ចំណុច/បន្ទាត់​ដាច់ៗ
     ; – ប្រភេទ (ចំណុច)៖
     ;   ០ = ចំណុច​ជា​ចតុកោណ (លំនាំដើម)
     ;   ២ = ចំណុច​ជា​ការ៉េ (ប្រវែង និង​ចម្ងាយ​ដែល​ពាក់ព័ន្ធ​នឹង​ទំហំ​ប៊ិច)

     PENSTYLE [3, 1mm, 2, 4mm, 2mm, 2] ; ...––...––...––

## ការ​កំណត់​បំពេញ

### FILLCOLOR/FILLCOLOUR (fc)

     FILLCOLOR “blue” ; fill with blue color, see also PENCOLOR
     FILLCOLOR “invisible” CIRCLE 10 ; unfilled circle
     FILLCOLOR [“blue”, “red”] ; gradient between red and blue
     FILLCOLOR [[255, 255, 255], [255, 128, 0]] ; between white and orange
     FILLCOLOR [“blue”, “red”, 1, 0, 0] ; set axial gradient (with the required rotation and border settings), possible values: 0-5 = linear, axial, radial, elliptical, square and rectangle gradients
     FILLCOLOR [“red”, “blue”, 0, 90, 20] ; linear with 20% border, rotated with 90 degrees from the actual heading of the turtle
     FILLCOLOR [“red”, “blue”, 0, 90, 20, 0, 0, 200, 50] ; from 200% to 50% intensity
     FILLCOLOR [ANY, ANY, 2, 0, 0, 50, 50] ; radial gradient with random colors and 50-50% horizontal and vertical positions of the center

### ភាព​​ថ្លា

     FILLTRANSPARENCY 80 ; កំណត់​ភាព​ថ្លា​នៃ​ពណ៌​បំពេញ​ពិតប្រាកដ 80%
     FILLTRANSPARENCY [80] ; កំណត់​ជម្រាល​ភាព​ថ្លា​ពី 80% ដល់ 0%
     FILLTRANSPARENCY [80, 20] ; កំណត់​ជម្រាល​ភាព​ថ្លា​លីនេអ៊ែរ​ពី 80% ដល់ 20%
     FILLTRANSPARENCY [80, 20, 1, 90] ; កំណត់​ជម្រាល​ភាព​ថ្លា​អ័ក្ស​ដែល​បាន​បង្វិល 90 ដឺក្រេ​ពី​ក្បាល​ជាក់ស្ដែង turtle
     FILLTRANSPARENCY [80, 20, 2, 0, 20, 50, 50] ; កំណត់​ជម្រាល​ភាព​ថ្លា​កាំ​ពី​ខាងក្រៅ 80% ទៅ​ខាង​ក្នុង 20% ភាព​ថ្លា​ដែល​មាន​ស៊ុម 20% និង​ទីតាំង​បញ្ឈរ និង​ផ្ដេក 50-50% ​នៃ​កណ្ដាល

### FILLSTYLE

     FILLSTYLE 0 ; បំពេញ​ដោយ​គ្មាន​ឆ្នូត (លំនាំដើម)
     FILLSTYLE 1 ; ឆ្នូត​ខ្មៅ​មួយ (ផ្ដេក)
     FILLSTYLE 2 ; ឆ្នូត​ខ្មៅ​មួយ (៤៥ ដឺក្រេ)
     FILLSTYLE 3 ; ឆ្នូត​ខ្មៅ​មួយ (-៤៥ ដឺក្រេ)
     FILLSTYLE 4 ; ឆ្នូត​ខ្មៅ​មួយ (បញ្ឈរ)
     FILLSTYLE 5 ; ឆ្នូត​ក្រហម​កាត់ (៤៥ ដឺក្រេ)
     FILLSTYLE 6 ; ឆ្នូត​ក្រហម​កាត់ (០ ដឺក្រេ)
     FILLSTYLE 7 ; ឆ្នូត​ខៀវ​កាត់ (៤៥ ដឺក្រេ)
     FILLSTYLE 8 ; ឆ្នូត​ខៀវ​កាត់ (០ ដឺក្រេ)
     FILLSTYLE 9 ; ពណ៌ខៀវ​កាត់​បី
     FILLSTYLE 10 ; ឆ្នូត​ខ្មៅ​មួយ​ធំ (៤៥​ដឺក្រេ)

     ; ឆ្នូត​ផ្ទាល់ខ្លួន​បញ្ជាក់​ដោយ​បញ្ជី​ដែល​មាន​អាគុយម៉ង់​ដូច​ខាងក្រោម៖
     ; – style (1 = តែមួយ, 2 = ទ្វេ, 3 = ឆ្នូត​បី)
     ; – color
     ; – distance
     ; – degree

     FILLSTYLE [2, “green”, 3pt, 15°] ; ឆ្នូត​បៃតង​កាត់ (១៥ ដឺក្រេ)

## វត្ថុ​​គំនូរ

### CIRCLE

     CIRCLE 100 ; គូរ​រាង​រង្វង់ (អង្កត់ផ្ចិត = 100pt)

### ELLIPSE

     ELLIPSE [50, 100] ; គូរ​រង្វង់​ពងក្រពើ​ដែល​មាន​អង្កត់ផ្ចិត ៥០ និង ១០០
     ELLIPSE [50, 100, 2h, 12h] ; គូរ​អង្កត់​រាង​ពងក្រពើ (ពី​ចំណុច​ម៉ោង ២ ដល់​ម៉ោង ១២)
     ELLIPSE [50, 100, 2h, 12h, 2]  ; គូរ​អង្កត់​រាង​ពងក្រពើ
     ELLIPSE [50, 100, 2h, 12h, 3]  ; គូរ​អ័ក្ស​រាង​ពងក្រពើ

### SQUARE

     SQUARE 100 ; គូរ​រាង​ការ៉េ (ទំហំ = 100pt)

### RECTANGLE

     RECTANGLE [50, 100] ; draw a rectangle shape (50×100pt)
     RECTANGLE [50, 100, 10] ; draw a rectangle with rounded corners

### POINT

     POINT ; គូរ​ចំណុច​ជាមួយ​ទំហំ និង​ពណ៌​របស់​ប៊ិច

CLOSE can join the last points, FILL can fill the shape defined by points. For example, it’s easy to draw a “flat” star starting from its center:

     PENUP
     REPEAT 5 [
       FORWARD 80
       POINT
       BACK 80
       RIGHT 36
       FORWARD 50
       POINT
       BACK 50
       RIGHT 120
     ] FILL

### LABEL

     LABEL “text” ; បង្ហាញ​អត្ថបទ​នៅ​ក្នុង​ទីតាំង​អណ្ដើក
     LABEL 'text' ; មើល​ខាងលើ
     LABEL "text ; មើល​ខាងលើ (សម្រាប់​តែ​ពាក្យ​ទោល​ប៉ុណ្ណោះ)

### TEXT

     CIRCLE 10 TEXT “text” ; កំណត់​អត្ថបទ​របស់​អត្ថបទ​គំនូរ​ជាក់ស្ដែង

## ការ​កំណត់​ពុម្ពអក្សរ

### FONTCOLOR/FONTCOLOUR

     FONTCOLOR “green” ; កំណត់​ពណ៌​ពុម្ពអក្សរ

### FONTFAMILY

     FONTFAMILY “Linux Libertine G” ; កំណត់​ពុម្ពអក្សរ (អំបូរ)
     FONTFAMILY “Linux Libertine G:smcp=1” ; កំណត់​លក្ខណៈ​ពុម្ពអក្សរ​ផង​ដែរ (អក្សរ​ពុម្ព​តូច)
     FONTFAMILY “Linux Libertine G:smcp=1&onum=1” ; អក្សរ​ពុម្ព​តូច + រូបរាង​ចាស់

### FONTSIZE

     FONTSIZE 12 ; កំណត់ 12pt

### FONTWEIGHT

     FONTWEIGHT “bold” ; កំណត់​ពុម្ពអក្សរ​ដិត
     FONTWEIGHT “normal” ; កំណត់​លក្ខណៈ​ធម្មតា

### FONTSTYLE

     FONTSTYLE “italic” ; កំណត់​ទ្រេត
     FONTSTYLE “normal” ; កំណត់​ធម្មតា

## PICTURE (pic)

PICTURE គឺ​សម្រាប់

- ដាក់​រូបរាង​ជា​ក្រុម;

- ចាប់ផ្ដើម​រូបរាង​បន្ទាត់​ថ្មី;

- ការ​រក្សាទុក​រូបភាព SVG និង SVG/SMIL មាន​ចលនា

- រក្សា​លំនឹង​ទីតាំង និង​រាង​បន្ទាត់​នៅ​ស៊ុម​ខាងឆ្វេង។

### ដាក់​រូបរាង​ជាក្រុម

     ; PICTURE [ LibreLogo_commands ]
     PICTURE [ FORWARD 100 CIRCLE 100 ] ; មែកធាង​ដូច​រូបរាង​ដែល​បាន​ដាក់​ក្រុម

មើល​ផង​ដែរ​អំពី “ក្រុម” នៅ​ក្នុង​ជំនួយ​របស់ LibreOffice Writer ។

     TO tree location
       PENUP POSITION location HEADING 0 PENDOWN
       PICTURE [ FORWARD 100 CIRCLE 100 ] ; tree-like grouped shape
     END

     PICTURE [ tree [230, 400] tree [300, 400] ] ; grouped shapes in a grouped shape

### ចាប់ផ្ដើម​រាង​បន្ទាត់​ថ្មី

     PICTURE ; ចាប់ផ្ដើម​រាង​បន្ទាត់​ថ្មី
     FORWARD 10 PICTURE FORWARD 10 ; រាង​បន្ទាត់​ពីរ​ជាន់

### ការ​រក្សាទុក​រូបភាព SVG

     PICTURE “example.svg” [ CIRCLE 5 ] ; រក្សាទុក​រូបភាព​ជា​ឯកសារ​រូបភាព SVG នៅ​ក្នុង​ថត​អ្នកប្រើ
     PICTURE “Desktop/example.svg” [ FORWARD 100 CIRCLE 5 ] ; ដូច​ខាងលើ​ជាមួយ​ផ្លូវ​ពាក់ព័ន្ធ
     PICTURE “/home/user/example.svg” [ CIRCLE 5 ] ; ផ្លូវ​ដាច់ខាត​សម្រាប់ Unix/Linux
     PICTURE “C:\example.svg” [ CIRCLE 5 ] ; ផ្លូវ​ដាច់ខាត​សម្រាប់ Windows

### ការ​រក្សាទុក SVG/SMIL មាន​ចលនា (គំនូរ​ដោយ​ប្រើ​ពាក្យ​បញ្ជា SLEEP)

     PICTURE “animation.svg” [ CIRCLE 5 SLEEP 1000 CIRCLE 99 ] ; រក្សាទុក SVG/SMIL ចលនា (មើល​ផង​ដែរ SLEEP)
     PICTURE “animation2.svg” [ CIRCLE 5 SLEEP 1000 CIRCLE 99 SLEEP 2000 ] ; ដូច​ខាងលើ​ដែរ ប៉ុន្តែ​ប្រើ SLEEP បន្ទាប់ពី​វត្ថុ​ចុងក្រោយ​នឹង​មាន​លទ្ធផល​រង្វិល​ជុំ៖ បន្ទាប់ពី ២ វិនាទី ចលនា SVG ចាប់ផ្ដើម​ឡើងវិញ​នៅ​ក្នុង​កម្មវិធី​អ៊ីនធឺណិត SMIL-conformant

### ស្ថិរភាព​នៅ​ស៊ុម​ខាងឆ្វេង

Use PICTURE to keep the consistency of positions and line shapes at the left border of Writer:

     PICTURE [ CIRCLE 20 POSITION [-100, 100] CIRCLE 20 ]

## រង្វិល​ជុំ

### REPEAT

     ; REPEAT number [ commands ]

     REPEAT 10 [ FORWARD 10 LEFT 45 CIRCLE 10 ] ; ធ្វើ​ឡើងវិញ ១០ ដង

     ; លេខ​គឺជា​ជម្រើស

     REPEAT [ POSITION ANY ] ; រង្វិល​ជុំ​រហូត

### REPCOUNT

អថេរ​រង្វិល​ជុំ (មាន​ផង​ដែរ​នៅ​ក្នុង FOR និង WHILE loops)។

     REPEAT 100 [ FORWARD REPCOUNT LEFT 90 ]

### FOR IN

រង្វិល​ជុំ​សម្រាប់​ធាតុ​បញ្ជី៖

     FOR i IN [1, 5, 7, 9, 11] [
       FORWARD i
       LEFT 90
     ]

រង្វិល​ជុំ​សម្រាប់​តួអក្សរ​នៃ​លំដាប់​តួអក្សរ៖

     FOR i IN “text” [
       LABEL i
       FORWARD 10
     ]

### WHILE

     WHILE TRUE [ POSITION ANY ] ; endless loop
     WHILE REPCOUNT <= 10 [ FORWARD 50 LEFT 36 ] ; as REPEAT 10 [ ... ]

### BREAK

បញ្ឈប់​រង្វិល​ជុំ។

     REPEAT [ ; endless loop
       POSITION ANY
       IF REPCOUNT = 100 [ BREAK ]  ; equivalent of the REPEAT 100 [ ... ]
     ]

### CONTINUE

ទៅកាន់​ការ​ធ្វើ​ឡើងវិញ​បន្ទាប់​របស់​រង្វិល​ជុំ។

     REPEAT 100 [
       POSITION ANY
       IF REPCOUNT % 2 = 0 [ CONTINUE ]
       CIRCLE 10 ; គូរ​រង្វង់​នៅ​រាល់​ទីតាំង​ទី២
     ]

## លក្ខខណ្ឌ

### IF

     ; IF condition [ true block ]
     ; IF condition [ true block ] [ false block ]

     IF a < 10 [ PRINT “Small” ]
     IF a < 10 [ PRINT “Small” ] [ PRINT “Big” ]

### AND, OR, NOT

សញ្ញា​ប្រមាណវិធី​តក្កវិជ្ជា។

     IF a < 10 AND NOT a = 5 [ PRINT “0, 1, 2, 3, 4, 6, 7, 8 or 9” ]
     IF a < 10 AND a != 5 [ PRINT “0, 1, 2, 3, 4, 6, 7, 8 or 9” ] ; ដូច​ខាងលើ

## ទម្រង់ការ​រង

### TO, END

ពាក្យ​ថ្មី (ឬ​បែបបទ)។

     TO triangle
       REPEAT 2 [ FORWARD 100 RIGHT 120 ] FILL
     END

     REPEAT 10 [ triangle PENUP POSITION ANY PENDOWN ]

### OUTPUT

ត្រឡប់​តម្លៃ​នៃ​អនុគមន៍។

     TO randomletter
       OUTPUT RANDOM “qwertzuiopasdfghjklyxcvbnm”
     END

     PRINT randomletter + randomletter + randomletter ; print 3-letter random character sequence

### STOP

ត្រឡប់​ពី​បែបបទ។

     TO example number
       IF number < 0 [ STOP ]
       PRINT SQRT number ; បង្ហាញ​ឫស​ការ៉េ
     ]

     ឧទាហរណ៍ 100
     ឧទាហរណ៍ -1 ; មាន​កំហុស និង​គ្មាន​លទ្ធផល
     ឧទាហរណ៍ 25

## អថេរ​លំនាំដើម

### ANY

តម្លៃ​ពណ៌​លំនាំដើម។ល។

     PENCOLOR ANY ; ពណ៌​ប៊ិច​ចៃដន្យ

### TRUE

តម្លៃ​តក្កវិជ្ជា។

     WHILE TRUE [ POSITION ANY ] ; រង្វិល​ជុំ​មិន​ចេះ​ចប់
     PRINT TRUE ; បង្ហាញ​ពិត

### FALSE

តម្លៃ​តក្កវិជ្ជា។

     WHILE NOT FALSE [ POSITION ANY ] ; រង្វិល​ជុំ​មិន​ចេះ​ចប់
     PRINT FALSE ; បង្ហាញ​មិន​ពិត

### PAGESIZE

     PRINT PAGESIZE ; បង្ហាញ​បញ្ជី​ទំហំ​ទំព័រ​គិតជា​ចំណុច, ឧ. [595.30, 841.89]

### PI/π

     PRINT PI ; បង្ហាញ 3.14159265359

## Input/Output

### PRINT

     PRINT “text” ; បង្ហាញ “text” នៅ​ក្នុង​ប្រអប់
     PRINT 5 + 10 ; បង្ហាញ 15

### INPUT

     PRINT INPUT “Input value?” ; សួរ និង​បង្ហាញ​ដោយ​ប្រអប់​សំណួរ
     PRINT FLOAT (INPUT “First number?”) + FLOAT (INPUT “Second number?”) ; ការ​គណនា​ធម្មតា

## SLEEP

     SLEEP 1000 ; រង់ចាំ ១០០ ម.វិ. (១ វិនាទី)

## GLOBAL

កំណត់​អថេរ​សាកល​ដែល​បាន​ប្រើ​ដោយ​បែបបទ។

     GLOBAL about
     about = “LibreLogo”

     TO example
       PRINT about
       GLOBAL about ; ពេល​យើង​ចង់​បន្ថែម​តម្លៃ​ថ្មី
       about = “new value for the global variable”
     END

     example
     PRINT about

## អនុគមន៍

### RANDOM

     PRINT RANDOM 100 ; ចំនួន​ទសភាគ​ចៃដន្យ (0 <= x < 100)
     PRINT RANDOM “text” ; អក្សរ​ចៃដន្យ​របស់ “text”
     PRINT RANDOM [1, 2] ; ធាតុ​បញ្ជី​ចៃដន្យ (១ ឬ ២)

### INT

     PRINT INT 3.8 ; បង្ហាញ​លេខ 3 (ផ្នែក​គត់​របស់ 3.8)
     PRINT INT RANDOM 100 ; លេខ​ចំនួនគត់​ចៃដន្យ (0 <= x < 100)
     PRINT INT “7” ; បម្លែង​ប៉ារ៉ាម៉ែត្រ​តួអក្សរ​ទៅជា​ចំនួនគត់

### FLOAT

     ; បម្លែង​ប៉ារ៉ាម៉ែត្រ​តួអក្សរ​ទៅជា​ចំនួន​ទសភាគ
     PRINT 2 * FLOAT “5.5” ; បង្ហាញ 11.0

### STR

     ; បម្លែង​ប៉ារ៉ាម៉ែត្រ​លេខ​ទៅជា​តួអក្សរ
     PRINT “Result: ” + STR 5 ; បង្ហាញ “Result: 5”
     PRINT 10 * STR 5 ; បង្ហាញ 5555555555

### SQRT

     PRINT SQRT 100 ; បង្ហាញ 10, ឫសការ៉េ​នៃ 100

### SIN

     PRINT SIN 90 * PI/180 ; បង្ហាញ 1.0 (ស៊ីនុស​របស់​មុំ 90°)

### COS

     PRINT COS 0 * PI/180 ; បង្ហាញ 1.0 (កូស៊ីនុស​របស់​មុំ 0°)

### LOG10

     PRINT LOG10 100 ; print 2.0 (ឡូការីត​ទូទៅ 100)

### ROUND

     PRINT ROUND 3.8 ; បង្ហាញ 4 (ការ​បង្គត់ 3.8)
     PRINT ROUND RANDOM 100 ; ចំនួន​គត់​ចៃដន្យ (0 <= x <= 100)

### ABS

     PRINT ABS -10 ; បង្ហាញ​លេខ 10, តម្លៃ​ដាច់ខាត​របស់ -10

### COUNT

     PRINT COUNT “text” ; បង្ហាញ​លេខ 4, ចំនួន​តួអក្សរ​របស់ “text”
     PRINT COUNT [1, 2, 3] ; បង្ហាញ​លេខ 3, ទំហំ​បញ្ជី

### SET

     ; បម្លែង​បញ្ជី​ទៅជា​សំណុំ Python
     PRINT SET [4, 5, 6, 6] ; បង្ហាញ {4, 5, 6}
     PRINT SET [4, 5, 6, 6] | SET [4, 1, 9] ; បង្ហាញ {1, 4, 5, 6, 9}, ប្រជុំ
     PRINT SET [4, 5, 6, 6] & SET [4, 1, 9] ; បង្ហាញ {4}, ប្រសព្វ
     PRINT SET ([4, 5, 6, 6]) - SET [4, 1, 9] ; បង្ហាញ {5, 6}, ផល​ដក
     PRINT SET [4, 5, 6, 6] ^ SET [4, 1, 9] ; បង្ហាញ {1, 5, 6, 9}, ផល​ដក​ស៊ីមេទ្រី

### RANGE

     ; ការ​បង្កើត​បញ្ជី Python-like
     PRINT RANGE 10 ; បង្ហាញ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     PRINT RANGE 3 10 ; បង្ហាញ [3, 4, 5, 6, 7, 8, 9]
     PRINT RANGE 3 10 3 ; បង្ហាញ [3, 6, 9]

     FOR i IN RANGE 10 50 10 [ ; loop for [10, 20, 30, 40]
       FORWARD i
       LEFT 90
     ]

### LIST

     ; លុប​ធាតុ​ជាន់​គ្នា​នៃ​បញ្ជី​ដោយ​ប្រើ​សំណុំ និង​បញ្ជី​បម្លែង
     PRINT LIST (SET [1, 3, 5, 5, 2, 1]) ; បង្ហាញ [1, 3, 5, 2]

### TUPLE

ការ​បម្លែង​ទៅ Python tuple (បញ្ជី​មិន​អាច​កែប្រែ​បាន)

     PRINT TUPLE [4, 5]

### SORTED

វា​ផ្ដល់​ត្រឡប់​នូវ​បញ្ជី​តម្រៀប។

     PRINT SORTED [5, 1, 3, 4] ; បង្ហាញ [1, 3, 4, 5]

### SUB

ជំនួស​លំដាប់​អក្សរ​ដោយ​ប្រើ​លំនាំ regex (កន្សោម​ធម្មតា) ។

     PRINT SUB (“t”, “T”, “text”) ; បង្ហាញ “Text”, ជំនួស “t” ដោយ “T”
     PRINT SUB (“(.)”, “\\1\\1”, “text”) ; បង្ហាញ “tteexxtt”, បង្កើន​ទ្វេ​អក្សរ​នីមួយៗ

### SEARCH

ស្វែងរក​លំនាំ​លំដាប់​តួអក្សរ​ដោយ​ប្រើ​លំនាំ regex ។

     IF SEARCH (“\w”, "word") [ PRINT “Letter in the word.” ]

### FINDALL

រក​លំដាប់​តួអក្សរ​ទាំងអស់​នៅ​ក្នុង​ខ្សែ​អក្សរ​បញ្ចូល​ដែល​ផ្គូផ្គង​ជាមួយ​លំនាំ regex ដែល​បាន​ផ្ដល់។

     PRINT FINDALL(“\w+”, “Dogs, cats.”) ; បង្ហាញ [“Dogs”, “cats”], បញ្ជី​ពាក្យ។

### MIN

     PRINT MIN [1, 2, 3] ; បង្ហាញ​លេខ 1, ធាតុ​ដែល​ទាប​បំផុត​នៅ​ក្នុង​បញ្ជី

### MAX

     PRINT MAX [1, 2, 3] ; បង្ហាញ​លេខ 3, ធាតុ​ដែល​ធំ​បំផុត​នៅ​ក្នុង​បញ្ជី

## ពណ៌

     PENCOLOR “SILVER” ; កំណត់​តាម​ឈ្មោះ
     PENCOLOR [1] ; កំណត់​តាម​គ្រឿង​សម្គាល់
     PENCOLOR “~SILVER” ; ពណ៌​ប្រាក់​ចៃដន្យ

គ្រឿង​សម្គាល់ | ឈ្មោះ
០ | BLACK
១ | SILVER
២ | GRAY/GREY
៣ | WHITE
៤ | MAROON
៥ | RED
៦ | PURPLE
៧ | FUCHSIA/MAGENTA
៨ | GREEN
៩ | LIME
10 | OLIVE
11 | YELLOW
12 | NAVY
13 | BLUE
14 | TEAL
15 | AQUA
16 | PINK
១៧ | TOMATO
18 | ORANGE
១៩ | GOLD
20 | VIOLET
២១ | SKYBLUE
22 | CHOCOLATE
២៣ | BROWN
24 | INVISIBLE