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

Contents

# 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 (LibreOffice - PreferencesTools - Options - Languages and Locales - General - Western) and click on this icon to translate the Logo program to the selected language.

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

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

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

     FORWARD 200 LEFT 89

To reset the command line triple-click it or press CommandCtrl+A to select the previous commands, and type the new commands.

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

Turtle shape of LibreLogo is a normal fixed size drawing object. You can position and rotate it on standard way, too, using the mouse and the Rotate icon of the Drawing Object Properties toolbar. Modify Line Thickness, Line Color and Area Color settings of the turtle shape to set PENSIZE, PENCOLOR and FILLCOLOR attributes of 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

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

Lines of a LibreLogo program are paragraphs in the Writer document. A program line can contain multiple commands:

     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 ; line thickness is 100 points
     PENSIZE ANY ; equivalent of 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 ] ; មែកធាង​ដូច​រូបរាង​ដែល​បាន​ដាក់​ក្រុម

See also “Group” in LibreOffice Writer Help.

     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 list generation
     PRINT LIST RANGE 10 ; print [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     PRINT LIST RANGE 3 10 ; print [3, 4, 5, 6, 7, 8, 9]
     PRINT LIST RANGE 3 10 3 ; print [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