![三维图形化C++趣味编程](https://wfqqreader-1252317822.image.myqcloud.com/cover/599/24172599/b_24172599.jpg)
绘制字符画
【例2.3】试编程在绘图窗口显示两棵并排的世界树。
在绘图窗口输出一行文字使用的语句为:Win.Cout(“此处添加要输出的字符串”);。
参考代码如下所示:
![](https://epubservercos.yuewen.com/8F749A/13043252003826606/epubprivate/OEBPS/Images/Figure-P36_1.jpg?sign=1738896500-5v731PFsq6hAfB02o6N95jZNjkSHqyCa-0-a6c21eef73599ca2c5ff58ed0b04706e)
编译运行的结果如图2.6所示。
![](https://epubservercos.yuewen.com/8F749A/13043252003826606/epubprivate/OEBPS/Images/Figure-P36_2.jpg?sign=1738896500-ANGzOW05gB904E3E8K7AfAqBIExXkJHP-0-3f30394404e580036e551174ec888d71)
图2.6
Pen.Color(0,255,0)设置绘图窗口的画笔颜色。
Win.BackColor(128,127,255)设置绘图窗口的背景色。
Win.Cout(" ")是在窗口上逐行输出两个双引号中间的字符串,因为字符串是自动向下逐行输出的,所以不需要在字符串末尾添加换行符“\n”。
颜色为什么可以用三个数字来表示呢?
因为电脑屏幕上显示的颜色,是由红色、绿色、蓝色三种色光按照不同的比例混合而成的。因此红色、绿色、蓝色又称为三原色光,用英文表示就是R(red)、G(green)、B(blue),所以(255,0,0)表示红色,(0,255,0)表示绿色,(0,0,255)表示蓝色。通常情况下,RGB的数值用整数来表示,即从0,1,2,…,255共256级,如图2.7所示。
![](https://epubservercos.yuewen.com/8F749A/13043252003826606/epubprivate/OEBPS/Images/Figure-P37_1.jpg?sign=1738896500-jGstANQSZr21fSwRJdTfX4G7SQWaYHR8-0-409d67ed5fb53b70f439fc6bec5969b6)
图2.7
256级的RGB色彩总共能组合出约1678万种色彩,即256×256×256=16777216,也称为24位色(2的24次方)。
![](https://epubservercos.yuewen.com/8F749A/13043252003826606/epubprivate/OEBPS/Images/Figure-P37_2.jpg?sign=1738896500-OEGl76HZHBnfvRQy0yYhZluW4NyBCPv8-0-8edfcc345112d134ca2ba04a62a127ec)
图2.8
还可以用数字0~15表示16种常用颜色,其颜色取值如图2.9所示,例如Pen.Color(2);表示设置画笔颜色为绿色。
![](https://epubservercos.yuewen.com/8F749A/13043252003826606/epubprivate/OEBPS/Images/Figure-P37_3.jpg?sign=1738896500-iXMXRTpBE3b3eHWkwZipvBjQ9SwZJwVW-0-bca74cb0aa6c5a04024c2273db91fa9b)
图2.9
在没有设置背景色代码的情况下,也可以在绘图窗口上单击鼠标右键,在弹出菜单中选择背景色,如图2.10所示。
【例2.4】试编程在控制台窗口输出如图2.11所示的字符串。
![](https://epubservercos.yuewen.com/8F749A/13043252003826606/epubprivate/OEBPS/Images/Figure-P38_1.jpg?sign=1738896500-aILsgbIEWDlNnVnoYQ2q5Tp9BnnZ5PYO-0-1a3fb215263c9f8dba4fb4987571f3ef)
图2.10
![](https://epubservercos.yuewen.com/8F749A/13043252003826606/epubprivate/OEBPS/Images/Figure-P38_2.jpg?sign=1738896500-1qVAbz7nQ3QpNFuKWKnPq4y3XK8N6meJ-0-c787ae73fdfb488f5de3b88d394c9224)
图2.11
![](https://epubservercos.yuewen.com/8F749A/13043252003826606/epubprivate/OEBPS/Images/Figure-P38_3.jpg?sign=1738896500-lyvblc4QmO8Z27d0gh7ce1lv768rFiCI-0-d5a7220d7726255d5cb8b9afd915f727)
图2.12
其实这个很容易想明白,仔细观察图2.13中的红色框,显然编译时编译器将框内的两个双引号当成了一对。而随后的双引号编译器就看不懂了。
![](https://epubservercos.yuewen.com/8F749A/13043252003826606/epubprivate/OEBPS/Images/Figure-P38_4.jpg?sign=1738896500-2VgipOWx74HJS82P6NGS0mql7a4hAIHA-0-33c99bab563ace4a8983f00c801a1612)
图2.13
除双引号外,诸如反斜杠“\”,单引号“‘”等字符也无法直接显示出来。为了正确显示这些特殊字符,可以在这些字符前加“\”来表示,例如之前我们用过的换行符“\n”,这种特殊字符的表示方法称之为转义字符。
所以正确的代码应如图2.14所示。
![](https://epubservercos.yuewen.com/8F749A/13043252003826606/epubprivate/OEBPS/Images/Figure-P39_1.jpg?sign=1738896500-mbNzhIk81N6sjJFDXzcre0OC4ULpXfKg-0-fcdaff92dd178bebfdefd0790da92199)
图2.14
任务 【题2.2】请模仿图2.15的字符图案,输出自己姓名每个字的拼音首字母(立体字符的实现方式参见资源包中的模板文本)。
![](https://epubservercos.yuewen.com/8F749A/13043252003826606/epubprivate/OEBPS/Images/Figure-P39_2.jpg?sign=1738896500-fI2bReioYUOROx4msnoTijm3V8FwN1Td-0-4b26498298e927379d6b31c5fa77b8c7)
图2.15