第八课 拓展绘图命令

第八课 拓展绘图命令

 

【拓展绘图命令】

GoC为了方便画出一些常见图形,还提供了一些拓展的绘图命令,下表列出了画矩形、圆、椭圆的几个命令格式和功能。

 

函数格式

功能说明

pen.o( r );

以笔位置为圆心,r为半径,画空心圆。例如:

pen.o( 50 ); 结果为

pen.oo( r, c );

以笔位置为圆心,r为半径,c为颜色编号,画实心圆。例如:

pen.o( 50, 1 ); 结果为

pen.e( w, h );

以笔位置为圆心,在宽为w高为h的矩形内画空心椭圆。例如:

pen.e( 50100 ); 结果为

pen.ee( w, h, c );

以笔位置为圆心,c为颜色编号,在宽为w高为h的矩形内,画实心圆。例如:

pen.ee( 50, 100, 4 ); 结果为

pen.r( w, h );

以笔位置为中心,w为宽,h为高,画空心矩形。例如:

pen.r( 50100 ); 结果为

pen.rr( w, h, c );

以笔位置为中心,w为宽,h为高,c为颜色编号,画实心矩形。例如:

pen.rr( 50, 100, 9 ); 结果为

 

注:颜色编号可以用加强型的RGB形式。

 

【循环输入多组数据】

把输入语句放在循环结构内,就可以实现多次输入数据。下面通过几个例题,结合拓展的绘图命令,进一步学习输入语句的使用方法。

 

例题8.1:编程画下面形状的图形,使用cin语句让顶点4个圆的颜色由用户键盘输入。

          第八课 拓展绘图命令_第1张图片

样例程序8.1

图形

//prog:样例程序8.1

//author: teacher

//2015.10.10


int main()

{ 

  int c;

  for(int i=0; i<4; i++)

  {

      cin>> c;  //键盘输入颜色

      pen.fd(100).oo(20,c);

      pen.up().bk(100).down();

      pen.rt(90);

  }

  return0;  

}

第八课 拓展绘图命令_第2张图片

键盘输入:

2  5  3  1

的运行结果图形。

 

 

例题8.2:编程实现动画:小球上下弹跳,弹跳高度由键盘输入。          

样例程序8.2

图形

//prog:样例程序8.2

//author: teacher

//2015.10.10


int main()

{ 

  int high;           //定义高度变量

   cin>> high;        //键盘输入高度

   pen.up().bk(200); //调整开始位置

 

//========气球上升==========  

  for(int i=0; i<high; i++) 

  {

     pen.rr(50,50,_white);   //清除一块

     pen.fd(1);                 //上升

      pen.oo(20,_brown);      //画球

     wait( i*0.01/high);  //等待一定时间

  }

 

//========气球下降==========

  for(int i=high; i>0; i--)

  {

     pen.rr(50,50,_white); //清除一块

     pen.bk(1);            //下降

      pen.oo(20,_brown);    //画球

     wait( i*0.01/high);//等待一定时间

  }

  return0;  

}

第八课 拓展绘图命令_第3张图片

键盘输入:300

等不同高度,可看到小球弹跳的高度不同。

 

 

新知识:

l 动画的方法是不断重复:清除原来的球,在新的位置画球,等待显示一定时间。

l 清除的方法是用与屏幕底色一样的颜色画矩形,覆盖原来的球。

l wait(s )命令是程序在这里要等待一会再继续运行。等待的时间s的单位是秒,例如wait(0.5 )就是等待0.5秒。

l 上升时,循环变量i不断增加,wait( i*0.01/high)的等待时间变大,给人感觉小球上升速度减慢。

l 下降时,for(int i=high; i>0; i--)就是循环变量i开始为high,然后每次减一(i--),i等于0时结束循环。i从大到小变化,等待时间也减少,给人感觉小球下降速度加快。

 

【练习】

一、输入6个月的平均气温,画6个宽10的矩形,矩形高度代表温度(直方图)。例如:输入:10  22  28  30 35  25,图形为:
       


二、利用画椭圆命令,动画显示一个飘动的气球。
         


三、 研究下面程序和图形,创作出自己的作品。

程序

图形

//prog:练习8.3

//author: teacher

//2015.10.10

 

int main()

{ 

  int r,c;   //定义半径、颜色变量。

  for(int i=0; i<5; i++)

  {

      cin>> r>>c;

      pen.oo(r,c);    

  }

  return0;  

}

第八课 拓展绘图命令_第4张图片

输入:

100 1

80 2

60 3

40 4

20 5

(棒棒糖)

//prog:练习8.4(生日帽)

//author: teacher

//2015.10.10


int main()

{ 

  for(int i=15; i>0; i--)

  {

      pen.oo(i*4,i);      

      pen.up().fd(10);

  }

  return0;  

}

第八课 拓展绘图命令_第5张图片

(生日帽)

 

【学习目标】

(1)      学会拓展绘图命令。

(2)      会用for循环变量从大到小变化。

(3)      初步掌握在for循环结构中输入多个数据。

(4)      学会简单动画编程方法。

 

你可能感兴趣的:(教学,C/C++,入门)