Երկչափ զանգվածները լայնորեն օգտագործվում են պատկերների հետ աշխատելիս։ Օրինակ, ունենալով
char
տիպի մատրիցա, մենք կարող ենք նկարել տարբեր պատկերնել օգտագործելով ASCII
սիմվոլները (համացանցում սա հայտնի է ASCII ART անունով)։ Այս օրինակում,
catImage
փոփոխականը իրենից ներկայացնում է char
տիպի երկչափ զանգված (մատրիցա)։ Եթե աշխատեցնեք ծրագիրը, ապա կտեսնեք, որ էկրանին կտպվի ASCII
սիմվոլներով կառուցված կատվի պատկեր։ /* |\---/| | o_o | \_^_/ */ #include <iostream> #include <vector> #include <string> int main() { // initilize // change vector to array std::vector<std::vector<char>> catImage = { {'|', '\\', '-', '-', '-', '/', '|'}, {'|', ' ', 'o', '_', 'o', ' ', '|' }, {' ', '\\', '_', '^', '_', '/', ' '} }; for (int i = 0; i < image.size(); ++i) { for (int j = 0; j < image[i].size(); ++j) { std::cout << image[i][j]; } std::cout << std::endl; } }
Ձևափոխելով մատրիցը, մենք կարող ենք նկարը ենթարկել տարբեր փոփոխությունների։ Եկեք օրինակ ձևափոխենք մատրիցը այնպես, որ այն եզրագծի կատվի պատկերը
*
սիմվոլներով։ Եթե եզրագծի հաստությունը հավասար է 1, կստանանք հետևյալ պատկերը՝
********* *|\---/|* *| o_o |* * \_^_/ * *********
Եթե եզրագծի հաստությունը հավասար է 2, կստանանք հետևյալ պատկերը՝
*********** *********** **|\---/|** **| o_o |** ** \_^_/ ** *********** ***********
Եթե եզրագծի հաստությունը հավասար է 2, կստանանք հետևյալ պատկերը՝
************* ************* ************* ***|\---/|*** ***| o_o |*** *** \_^_/ *** ************* ************* *************
Եզրագծի «հաստությունը» ներմուծվում է օգտագործողի կողմից։ Խնդրի պարզության համար սահմանափակենք դրա արժեքը
4
-ով։