
茶壶的绘制
【例1.1】尝试编程绘制一个茶壶。
单击Dev-C++智能开发平台工具栏上的“笑脸”图标,创建一个三维动画工程如图1.10所示。

图1.10
弹出建立新工程项目的对话框如图1.11所示。鼠标选中绘图程序,单击“确定”按钮。

图1.11
在弹出的保存文件对话框中选择合适的位置保存工程项目,例如图1.12中是将工程项目保存在电脑桌面的一个新建文件夹中。注意工程项目中所有的文件一定要保存到一个文件夹里。

图1.12
弹出的对话框中单击“打开”按钮,如图1.13所示。

图1.13
打开的main.cpp如图1.14所示,可以看到,该文件里已经自动写好了几行代码,这种cpp格式的文件我们称之为源代码文件,我们此后的所有C++代码,都将写在该源代码文件里。

图1.14
文件名“main”的中文意思是“主要的”,其后缀名cpp表示它是用C++语言编写的源代码文件,cpp实际上是“C plus plus”的英文缩写,“plus”的中文意思是“加”。
“include”的中文意思是“包含”。
“int”是英文“integer”的缩写,其中文意思是“整数”。
“show”的中文意思是“显示”。

图1.15
源代码文件相当于文本文件,是不可以直接运行的,必须要编译成exe文件后方可运行,exe文件是由0和1组成的二进制可执行文件(executable program),可以被计算机识别运行。所以,在工具栏中单击“编译运行”按钮,如图1.15所示。
如果编译运行成功,将弹出一个标准控制台窗口和一个绘图窗口,如图1.16所示。

图1.16
第1行代码即#include“picture.h”,表示包含一个名为picture.h的头文件(header file),有了这一句,才可以实现各种扩展功能,如绘图等。
main是函数的名称,所谓函数是指能完成一定功能的程序块,函数用一对大括号括住,即第4行至第7行。C++程序里,必须有且只能有一个名为main的函数,程序运行时由main函数里的第一条语句开始执行,结束于main函数尾的最后一条语句。int表示程序如果正常结束,会发送给系统一个信息,而这个信息是整数。
第6行代码即Win.Show();用于显示绘图窗口,一般来说,该语句应该放在所有绘图语句的最后一行,如果删除了该行代码,程序运行时就不会显示绘图窗口了,如图1.17所示。

图1.17
代码中的“//”是C++语言里的注释语句,“//”之后的该行内容不参与编译和运行,所以注释语句的多少不影响程序运行的快慢。
如果对一段代码进行注释,使用一对“/*”和“*/”,则处于其中的所有字符均被注释,如图1.18所示。

图1.18
绘制茶壶的语句如图1.19第5行代码所示,Model的中文意思是“模型”,Teapot的中文意思是“茶壶”,“.”可以看作汉字“的”,这样,Model.Teapot可以理解为“模型库中的茶壶”。
茶壶显示的风格和大小由随后一对括号中的两个参数确定,其中第一个参数50表示茶壶尺寸,第二个参数0表示以网格显示(1表示以实体显示)。
如果输入的代码无误,编译运行成功后,显示结果如图1.20所示。

图1.19

图1.20

图1.21
如图1.22所示,输入的所有字符都应该是英文半角字符,这只要把输入法设置为英文半角状态而不是中文输入法即可。例如,英文半角状态下输入的分号为“;”,而中文输入法输入的分号为“;”,这显然不能等价。

图1.22
程序运行时,如果按下Alt+3键,视图将切换为3D显示模式,此时用鼠标单击绘图界面或者按下“上”“下”“左”“右”方向键,可以改变窗口物体的观察方向,如图1.23所示。

图1.23
如图1.24所示,在输入代码过程中,只要随时按下Alt+Backspace组合键,就能调出代码提示及代码自动补全窗口,这对于记不住代码单词拼写的初学者来说是十分实用的。

图1.24
打开该工程所在的文件夹,可以看到其中包含了一个文件夹及多个文件,如图1.25所示,其中三维绘图程序.dev为工程文件,当关闭该工程后,如果想再次编辑该工程,可以用鼠标双击该文件打开整个工程。三维绘图程序.exe为已编译好的可执行文件。

图1.25
如果程序已经编译成功,就可以直接用鼠标双击运行三维绘图程序.exe了。
程序只要经过编译,源代码就会被自动保存。
不要单独打开main.cpp进行代码的编写,因为main.cpp只是整个工程的一个文件。正确的方式是双击打开文件夹下的项目文件,即三维绘图程序.dev,然后在main.cpp里编写代码。否则会出现如图1.26所示的错误信息。

图1.26
代码Win.Run(x,y)可使绘制物体旋转,括号中的x和y是两个整数,分别表示左右旋转和上下旋转的速度。例如,Win.Run(10,0)和Win.Run(-10,0)分别表示自西向东的旋转和自东向西的旋转,Win.Run(0,10)和Win.Run(0,-10)表示自上而下的旋转和自下而上的旋转,如图1.27所示。

图1.27
任务 【题1.3】设置绘图窗口标题栏名称的语句是:Win.Name(“这是我的第一个程序”);其中一对双引号内的字符串为窗口标题名。
隐藏/显示画笔的语句是:Pen.Show(0);其中参数0表示隐藏,1表示显示。
隐藏/显示提示信息的语句是:Win.Info(0);其中参数0表示隐藏,1表示显示。
设置3D显示模式的语句是:Win.Set3D(1);其中参数1表示显示,0表示关闭。
设置绘图窗口显示大小的语句是:Win.Size(500,200);其中参数500表示窗口长度,200表示窗口高度。
设置绘图窗口显示位置的语句是:Win.Place(20,10);其中20表示窗口到屏幕左边的距离,10表示窗口到屏幕上方的距离。
设置绘图窗口全屏的语句是:Win.FullScreen();
尝试使用这些语句并观察运行效果。