Երկչափ համակարգչային գրաֆիկա

2D համակարգչային գրաֆիկան կամ երկչափ համակարգչային գրաֆիկա, թվային պատկերների համակարգչային ձևավորումն է՝ հիմնականում երկչափ մոդելներից (ինչպիսիք են 2D երկրաչափական մոդելները, տեքստը և թվային պատկերները) և դրանց հատուկ տեխնիկայով։ Այն կարող է վերաբերել համակարգչային գիտության այն ճյուղին, որն ընդգրկում է նման տեխնիկան կամ հենց մոդելներին։

2D համակարգչային գրաֆիկան հիմնականում օգտագործվում է այն ծրագրերում, որոնք ի սկզբանե մշակվել են ավանդական տպագրության և գծագրման տեխնոլոգիաների վրա, ինչպիսիք են տպագրությունը, քարտեզագրությունը, տեխնիկական գծագրությունը, գովազդը և այլն։ Այդ հավելվածներում երկչափ պատկերը պարզապես իրական պատկերի ներկայացում չէ։ համաշխարհային օբյեկտ, բայց ավելացված իմաստային արժեք ունեցող անկախ արտեֆակտ. Հետևաբար, նախընտրելի են երկչափ մոդելները, քանի որ դրանք ավելի անմիջականորեն վերահսկում են պատկերը, քան 3D համակարգչային գրաֆիկան (որի մոտեցումն ավելի շատ նման է լուսանկարչությանը, քան տպագրությանը)։
Շատ տիրույթներում, ինչպիսիք են աշխատասեղանի հրատարակումը, ճարտարագիտությունը և բիզնեսը, 2D համակարգչային գրաֆիկայի տեխնիկայի վրա հիմնված փաստաթղթի նկարագրությունը կարող է շատ ավելի փոքր լինել, քան համապատասխան թվային պատկերը, հաճախ 1/1000 կամ ավելի գործակցով։ Այս ներկայացումը նաև ավելի ճկուն է, քանի որ այն կարող է ներկայացվել տարբեր լուծումներով՝ տարբեր ելքային սարքերին համապատասխանելու համար։ Այս պատճառներով փաստաթղթերը և նկարազարդումները հաճախ պահվում կամ փոխանցվում են որպես 2D գրաֆիկական ֆայլեր։
2D համակարգչային գրաֆիկան սկսվել է 1950-ական թվականներին՝ հիմնված վեկտորային գրաֆիկայի սարքերի վրա։ Հետագա տասնամյակներում դրանք հիմնականում փոխարինվեցին ռաստերի վրա հիմնված սարքերով։ PostScript լեզուն և X Window System արձանագրությունը ոլորտում կարևոր զարգացումներ էին։


== Տեխնիկա ==
2D գրաֆիկայի մոդելները կարող են համատեղել երկրաչափական մոդելներ (նաև կոչվում են վեկտորային գրաֆիկա), թվային պատկերներ (նաև կոչվում են ռաստերային գրաֆիկա), տեքստը, որը պետք է տպագրվի (սահմանված է բովանդակությամբ, տառատեսակի ոճով և չափով, գույնով, դիրքով և կողմնորոշմամբ), մաթեմատիկական ֆունկցիաներ և հավասարումներ, եւ ավելին. Այս բաղադրիչները կարող են փոփոխվել և շահագործվել երկչափ երկրաչափական փոխակերպումների միջոցով, ինչպիսիք են թարգմանությունը, պտույտը, մասշտաբը։ Օբյեկտ-կողմնորոշված գրաֆիկայում պատկերն անուղղակիորեն նկարագրվում է օբյեկտի միջոցով, որն օժտված է ինքնաարտադրման մեթոդով. ընթացակարգ, որը կամայական ալգորիթմի միջոցով գույներ է վերագրում պատկերի պիքսելներին։ Կոմպլեքս մոդելները կարող են կառուցվել ավելի պարզ օբյեկտների համադրմամբ՝ օբյեկտի վրա հիմնված ծրագրավորման պարադիգմներում։
Էվկլիդեսյան երկրաչափության մեջ թարգմանությունը յուրաքանչյուր կետը տեղափոխում է հաստատուն հեռավորությամբ որոշակի ուղղությամբ։ Թարգմանությունը կարելի է բնութագրել որպես կոշտ շարժում. մյուս կոշտ շարժումները ներառում են պտույտներ և անդրադարձումներ։ Թարգմանությունը կարող է նաև մեկնաբանվել որպես հաստատուն վեկտորի ավելացում յուրաքանչյուր կետի վրա կամ որպես կոորդինատային համակարգի սկզբնաղբյուրի փոփոխություն։ Թարգմանության օպերատորը օպերատորն է 
  
    
      
        
          T
          
            
              δ
            
          
        
      
    
    {\displaystyle T_{\mathbf {\delta } }}
   այնպիսին, որ 
  
    
      
        
          T
          
            
              δ
            
          
        
        f
        (
        
          v
        
        )
        =
        f
        (
        
          v
        
        +
        
          δ
        
        )
        .
      
    
    {\displaystyle T_{\mathbf {\delta } }f(\mathbf {v} )=f(\mathbf {v} +\mathbf {\delta } ).}
  :
Եթե v-ն ֆիքսված վեկտոր է, ապա թարգմանությունը Tv կաշխատի որպես Tv(p) = p + v:
Եթե T-ն թարգմանություն է, ապա T ֆունկցիայի տակ A ենթաբազմության պատկերը A-ի թարգմանությունն է T-ով։ A-ի թարգմանությունը Tv-ով հաճախ գրվում է A + v:
Էվկլիդեսյան տարածության մեջ ցանկացած թարգմանություն իզոմետրիա է։ Բոլոր թարգմանությունների բազմությունը կազմում է թարգմանական T խումբը, որը իզոմորֆ է բուն տարածության նկատմամբ, և Էվկլիդեսյան E(n ) խմբի նորմալ ենթախումբ։ T-ի E(n) գործակից խումբը իզոմորֆ է O(n) ուղղանկյուն խմբի նկատմամբ.
E(n ) / T ≅ O(n ).


== Թարգմանություն ==
Քանի որ թարգմանությունը աֆինային փոխակերպում է, բայց ոչ գծային, միատարր կոորդինատները սովորաբար օգտագործվում են թարգմանության օպերատորը մատրիցով ներկայացնելու և այդպիսով այն գծային դարձնելու համար։ Այսպիսով, մենք գրում ենք եռաչափ վեկտորը w = (wx, wy, wz) օգտագործելով 4 միատարր կոորդինատներ որպես w = (wx, wy:
Օբյեկտը v վեկտորով թարգմանելու համար յուրաքանչյուր միատարր վեկտոր p (գրված միատարր կոորդինատներով) պետք է բազմապատկվի այս թարգմանության մատրիցով.

  
    
      
        
          T
          
            
              v
            
          
        
        =
        
          
            [
            
              
                
                  1
                
                
                  0
                
                
                  0
                
                
                  
                    v
                    
                      x
                    
                  
                
              
              
                
                  0
                
                
                  1
                
                
                  0
                
                
                  
                    v
                    
                      y
                    
                  
                
              
              
                
                  0
                
                
                  0
                
                
                  1
                
                
                  
                    v
                    
                      z
                    
                  
                
              
              
                
                  0
                
                
                  0
                
                
                  0
                
                
                  1
                
              
            
            ]
          
        
      
    
    {\displaystyle T_{\mathbf {v} }={\begin{bmatrix}1&0&0&v_{x}\\0&1&0&v_{y}\\0&0&1&v_{z}\\0&0&0&1\end{bmatrix}}}
  Ինչպես ցույց է տրված ստորև, բազմապատկումը կտա ակնկալվող արդյունքը.

  
    
      
        
          T
          
            
              v
            
          
        
        
          p
        
        =
        
          
            [
            
              
                
                  1
                
                
                  0
                
                
                  0
                
                
                  
                    v
                    
                      x
                    
                  
                
              
              
                
                  0
                
                
                  1
                
                
                  0
                
                
                  
                    v
                    
                      y
                    
                  
                
              
              
                
                  0
                
                
                  0
                
                
                  1
                
                
                  
                    v
                    
                      z
                    
                  
                
              
              
                
                  0
                
                
                  0
                
                
                  0
                
                
                  1
                
              
            
            ]
          
        
        
          
            [
            
              
                
                  
                    p
                    
                      x
                    
                  
                
              
              
                
                  
                    p
                    
                      y
                    
                  
                
              
              
                
                  
                    p
                    
                      z
                    
                  
                
              
              
                
                  1
                
              
            
            ]
          
        
        =
        
          
            [
            
              
                
                  
                    p
                    
                      x
                    
                  
                  +
                  
                    v
                    
                      x
                    
                  
                
              
              
                
                  
                    p
                    
                      y
                    
                  
                  +
                  
                    v
                    
                      y
                    
                  
                
              
              
                
                  
                    p
                    
                      z
                    
                  
                  +
                  
                    v
                    
                      z
                    
                  
                
              
              
                
                  1
                
              
            
            ]
          
        
        =
        
          p
        
        +
        
          v
        
      
    
    {\displaystyle T_{\mathbf {v} }\mathbf {p} ={\begin{bmatrix}1&0&0&v_{x}\\0&1&0&v_{y}\\0&0&1&v_{z}\\0&0&0&1\end{bmatrix}}{\begin{bmatrix}p_{x}\\p_{y}\\p_{z}\\1\end{bmatrix}}={\begin{bmatrix}p_{x}+v_{x}\\p_{y}+v_{y}\\p_{z}+v_{z}\\1\end{bmatrix}}=\mathbf {p} +\mathbf {v} }
  

Թարգմանական մատրիցայի հակադարձությունը կարելի է ստանալ՝ հակադարձելով վեկտորի ուղղությունը.

  
    
      
        
          T
          
            
              v
            
          
          
            −
            1
          
        
        =
        
          T
          
            −
            
              v
            
          
        
        .
        
      
    
    {\displaystyle T_{\mathbf {v} }^{-1}=T_{-\mathbf {v} }.\!}
  
Նմանապես, թարգմանության մատրիցների արտադրյալը տրվում է՝ ավելացնելով վեկտորները.

  
    
      
        
          T
          
            
              u
            
          
        
        
          T
          
            
              v
            
          
        
        =
        
          T
          
            
              u
            
            +
            
              v
            
          
        
        .
        
      
    
    {\displaystyle T_{\mathbf {u} }T_{\mathbf {v} }=T_{\mathbf {u} +\mathbf {v} }.\!}
  
Քանի որ վեկտորների գումարումը կոմուտատիվ է, թարգմանական մատրիցների բազմապատկումը նույնպես կոմուտատիվ է (ի տարբերություն կամայական մատրիցների բազմապատկման)։


=== Ռոտացիա ===
Գծային հանրահաշիվում պտտման մատրիցը մատրից է, որն օգտագործվում է էվկլիդյան տարածության մեջ պտույտ կատարելու համար։

  
    
      
        R
        =
        
          
            [
            
              
                
                  cos
                  ⁡
                  θ
                
                
                  −
                  sin
                  ⁡
                  θ
                
              
              
                
                  sin
                  ⁡
                  θ
                
                
                  cos
                  ⁡
                  θ
                
              
            
            ]
          
        
      
    
    {\displaystyle R={\begin{bmatrix}\cos \theta &-\sin \theta \\\sin \theta &\cos \theta \\\end{bmatrix}}}
  Պտտում է xy-Cartesian հարթության կետերը ժամացույցի սլաքի հակառակ ուղղությամբ θ անկյան միջով, որը վերաբերում է դեկարտյան կոորդինատային համակարգի ծագմանը։ Ռոտացիոն մատրիցով R պտույտը կատարելու համար յուրաքանչյուր կետի դիրքը պետք է ներկայացվի սյունակի վեկտորով v, որը պարունակում է կետի կոորդինատները։ Պտտվող վեկտորը ստացվում է Rv մատրիցային բազմապատկման միջոցով։ Քանի որ մատրիցային բազմապատկումը չի ազդում զրոյական վեկտորի վրա (այսինքն՝ սկզբնաղբյուրի կոորդինատների վրա), ռոտացիոն մատրիցները կարող են օգտագործվել միայն կոորդինատային համակարգի ծագման շուրջ պտույտները նկարագրելու համար։
Պտտման մատրիցները տալիս են նման պտույտների պարզ հանրահաշվական նկարագրություն և լայնորեն օգտագործվում են երկրաչափության, ֆիզիկայի և համակարգչային գրաֆիկայի հաշվարկների համար։ Երկչափ տարածության մեջ պտույտը կարելի է պարզապես նկարագրել պտտման θ անկյան միջոցով, բայց այն կարող է ներկայացվել նաև 2 տողով և 2 սյունակով պտտվող մատրիցայի 4 մուտքերով։ Եռաչափ տարածության մեջ յուրաքանչյուր պտույտ կարող է մեկնաբանվել որպես տրված անկյան տակ պտույտ պտտման մեկ ֆիքսված առանցքի շուրջ (տե՛ս Էյլերի պտույտի թեորեմը), և, հետևաբար, այն կարելի է պարզապես նկարագրել անկյան և վեկտորի միջոցով՝ 3 մուտքով։ Այնուամենայնիվ, այն կարող է ներկայացվել նաև 3 տողով և 3 սյունակով պտտվող մատրիցայի 9 մուտքերով։ Պտտման հասկացությունը սովորաբար չի օգտագործվում 3-ից բարձր չափսերում. գոյություն ունի պտտվող տեղաշարժի հասկացություն, որը կարող է ներկայացվել մատրիցով, բայց ոչ մի առնչվող մեկ առանցք կամ անկյուն։
Պտտման մատրիցները քառակուսի մատրիցներ են՝ իրական մուտքերով։ Ավելի կոնկրետ դրանք կարող են բնութագրվել որպես 1-ին որոշիչով ուղղանկյուն մատրիցներ.

  
    
      
        
          R
          
            T
          
        
        =
        
          R
          
            −
            1
          
        
        ,
        det
        R
        =
        1
        
      
    
    {\displaystyle R^{T}=R^{-1},\det R=1\,}
  .N չափի բոլոր նման մատրիցների բազմությունը կազմում է խումբ, որը հայտնի է որպես հատուկ ուղղանկյուն խումբ SO(n):


=== Երկու չափսերով ===
Երկու չափումներում յուրաքանչյուր պտտվող մատրիցա ունի հետևյալ ձևը.

  
    
      
        R
        (
        θ
        )
        =
        
          
            [
            
              
                
                  cos
                  ⁡
                  θ
                
                
                  −
                  sin
                  ⁡
                  θ
                
              
              
                
                  sin
                  ⁡
                  θ
                
                
                  cos
                  ⁡
                  θ
                
              
            
            ]
          
        
      
    
    {\displaystyle R(\theta )={\begin{bmatrix}\cos \theta &-\sin \theta \\\sin \theta &\cos \theta \\\end{bmatrix}}}
  .Սա պտտում է սյունակի վեկտորները հետևյալ մատրիցային բազմապատկման միջոցով.

  
    
      
        
          
            [
            
              
                
                  
                    x
                    ′
                  
                
              
              
                
                  
                    y
                    ′
                  
                
              
            
            ]
          
        
        =
        
          
            [
            
              
                
                  cos
                  ⁡
                  θ
                
                
                  −
                  sin
                  ⁡
                  θ
                
              
              
                
                  sin
                  ⁡
                  θ
                
                
                  cos
                  ⁡
                  θ
                
              
            
            ]
          
        
        
          
            [
            
              
                
                  x
                
              
              
                
                  y
                
              
            
            ]
          
        
      
    
    {\displaystyle {\begin{bmatrix}x'\\y'\\\end{bmatrix}}={\begin{bmatrix}\cos \theta &-\sin \theta \\\sin \theta &\cos \theta \\\end{bmatrix}}{\begin{bmatrix}x\\y\\\end{bmatrix}}}
  .Այսպիսով, պտտվելուց հետո (x,y) կետի կոորդինատները (x',y') են.

  
    
      
        
          x
          ′
        
        =
        x
        cos
        ⁡
        θ
        −
        y
        sin
        ⁡
        θ
        
      
    
    {\displaystyle x'=x\cos \theta -y\sin \theta \,}
  ,

  
    
      
        
          y
          ′
        
        =
        x
        sin
        ⁡
        θ
        +
        y
        cos
        ⁡
        θ
        
      
    
    {\displaystyle y'=x\sin \theta +y\cos \theta \,}
  .Վեկտորի պտույտի ուղղությունը հակառակն է, եթե θ-ը դրական է (օրինակ՝ 90°), և ժամացույցի սլաքի ուղղությամբ, եթե θ բացասական է (օրինակ՝ -90°):


=== Կոորդինատների համակարգի ոչ ստանդարտ կողմնորոշում ===
Եթե օգտագործվում է ստանդարտ աջակողմյան դեկարտյան կոորդինատային համակարգ՝ x առանցքով դեպի աջ և y առանցքով դեպի վեր, R(θ) պտույտը ժամացույցի սլաքի ուղղությամբ է։ Եթե ​​օգտագործվում է ձախակողմյան դեկարտյան կոորդինատային համակարգ, որտեղ x-ն ուղղված է աջ, իսկ y-ն՝ ներքև, R(θ)-ը ժամացույցի սլաքի ուղղությամբ է։ Նման ոչ ստանդարտ կողմնորոշումները հազվադեպ են օգտագործվում մաթեմատիկայի մեջ, բայց տարածված են համակարգչային 2D գրաֆիկայի մեջ, որը հաճախ սկիզբ է առնում վերևի ձախ անկյունում և y առանցքը էկրանի կամ էջի ներքև։


== Ծանոթագրություններ ==