在C语言中使用计算机图形编程绘制移动的汽车

2021年4月17日18:15:56 发表评论 968 次浏览

在计算机图形学中, 使用graphics.h提供直接功能以绘制不同的坐标形状(如圆形, 矩形等)。通过使用这些功能, 我们可以绘制不同的对象, 例如汽车, 小屋, 树木等。在此程序中, 我们将使用直线和圆来绘制移动的汽车。

程序中使用的函数:

  • delay(n):该功能用于将程序输出保留一小段时间, 因为处理速度非常快, 因此可以使用它来查看结果。
  • setcolor(n):graphics.h头文件中的函数, 用于设置指针(光标)的颜色。计算机图形中有一些预定义的颜色。这里n是色号。
  • line(x1, y1, x2, y2):来自graphics.h头文件的函数, 该函数绘制一条线, 其中(x1, y1)作为该线的第一坐标, 而(x2, y2)作为该线的第二坐标。
  • circle(x, y, r):graphics.h头文件中的函数, 该函数绘制一个以中心(x, y)和半径r为中心的圆。

示例1:本示例创建一个不使用cleardevice()方法的移动汽车。

//C program to draw a moving car. This
//program run in gcc compiler having
//graphics.h library installed
#include <graphics.h>
#include <stdio.h>
  
//Function to draw moving car
void draw_moving_car( void ) {
  
     int i, j = 0, gd = DETECT, gm;
  
     //Passed three arguments to initgraph
     //function to initialize graphics mode
     initgraph(&gd, &gm, "" );
  
     for (i = 0; i <= 420; i = i + 10) {
  
         //Set color of car as red
         setcolor(RED);
  
         //Thease lines for bonnet and 
         //body of car
         line(0 + i, 300, 210 + i, 300);
         line(50 + i, 300, 75 + i, 270);
         line(75 + i, 270, 150 + i, 270);
         line(150 + i, 270, 165 + i, 300);
         line(0 + i, 300, 0 + i, 330);
         line(210 + i, 300, 210 + i, 330);
  
         //For left wheel of car
         circle(65 + i, 330, 15);
         circle(65 + i, 330, 2);
  
         //For right wheel of car
         circle(145 + i, 330, 15);
         circle(145 + i, 330, 2);
  
         //Line left of left wheel
         line(0 + i, 330, 50 + i, 330);
  
         //Line middle of both wheel
         line(80 + i, 330, 130 + i, 330);
  
         //Line right of right wheel
         line(210 + i, 330, 160 + i, 330);
  
         delay(100);
  
         //To erase previous drawn car, draw
         //the whole car at same possition
         //but color using black
         setcolor(BLACK);
          
         //Lines for bonnet and body of car
         line(0 + i, 300, 210 + i, 300);
         line(50 + i, 300, 75 + i, 270);
         line(75 + i, 270, 150 + i, 270);
         line(150 + i, 270, 165 + i, 300);
         line(0 + i, 300, 0 + i, 330);
         line(210 + i, 300, 210 + i, 330);
  
         //For left wheel of car
         circle(65 + i, 330, 15);
         circle(65 + i, 330, 2);
  
         //For right wheel of car
         circle(145 + i, 330, 15);
         circle(145 + i, 330, 2);
  
         //Line left of left wheel
         line(0 + i, 330, 50 + i, 330);
  
         //Line middle of both wheel
         line(80 + i, 330, 130 + i, 330);
  
         //Line right of right wheel
         line(210 + i, 330, 160 + i, 330);
     }
  
     getch();
  
     closegraph();
}
  
//Driver code
int main()
{
     draw_moving_car();
  
     return 0;
}

输出如下:

在C语言中使用计算机图形编程绘制移动的汽车1

示例2:本示例使用cleardevice()方法清除屏幕。

//C program to draw a moving car. This
//program run in gcc compiler having
//graphics.h library installed
#include <graphics.h>
#include <stdio.h>
  
//Function to draw moving car
void draw_moving_car( void ) {
  
     int i, j = 0, gd = DETECT, gm;
  
     //Passed three arguments to initgraph
     //function to initialize graphics mode
     initgraph(&gd, &gm, "" );
  
     for (i = 0; i <= 420; i = i + 10) {
  
         //Set color of car as red
         setcolor(RED);
  
         //Thease lines for bonnet and 
         //body of car
         line(0 + i, 300, 210 + i, 300);
         line(50 + i, 300, 75 + i, 270);
         line(75 + i, 270, 150 + i, 270);
         line(150 + i, 270, 165 + i, 300);
         line(0 + i, 300, 0 + i, 330);
         line(210 + i, 300, 210 + i, 330);
  
         //For left wheel of car
         circle(65 + i, 330, 15);
         circle(65 + i, 330, 2);
  
         //For right wheel of car
         circle(145 + i, 330, 15);
         circle(145 + i, 330, 2);
  
         //Line left of left wheel
         line(0 + i, 330, 50 + i, 330);
  
         //Line middle of both wheel
         line(80 + i, 330, 130 + i, 330);
  
         //Line right of right wheel
         line(210 + i, 330, 160 + i, 330);
  
         delay(100);
  
         //To erase previous drawn car
         //use cleardevice() function
         cleardevice();
     }
  
     getch();
  
     closegraph();
}
  
//Driver code
int main()
{
     draw_moving_car();
  
     return 0;
}

输出如下:

在C语言中使用计算机图形编程绘制移动的汽车2

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: