使用graphics.h来绘制图形

  版权声明:本文为博主原创文章,未经博主允许不得转载。

  graphics.h是TC里面的图形库,如果要用的话应该用TC来编译。分为:像素函数、直线和线型函数、多边形函数、填充函数等。然而在我们使用的编译器vc6.0和visual studio 2013编译器中是不支持graphics.h图形库的,当然vc6.0和visual studio 2013编译器也自带了微软的图形库API(也叫Windows API,它的函数基本上包含在了windows.h的头文件中),那么如果我们要在vc6.0和visual studio 2013中使用graphics图形库怎么办?我们有两种解决的方法。

  第一种:首先我们下载一个TC编译器安装,然后在的安装目录下面找到include文件夹和lib文件夹,再将其中的graphics图形绘制的.h文件和.lib文件复制粘贴到我们的VC6.0和visual studio 2013对应的文件夹下面去。(这个方法比较的麻烦)

  第二种:下载EasyX来添加graphics.h图形库。

  首先下载好EasyX,下载网址:http://www.easyx.cn/downloads/。在下面红框中随便选择下载一个,我下载的是EasyX_2014冬至版

  

  下载好后,将压缩包解压。我们就会在解压后的文件夹中看到有关graphics图形库相关的lib和include文件夹。

  

  然后,再将上面lib文件夹和include文件夹下面的内容复制到你的vc和visual studio 2013安装目录的对应的lib和include的文件夹的下面即可。(我这里以vc6.0为例)如下图操作:include和lib文件夹在安装目录的...\Microsoft Visual Studio\VC98\Include(or lib)

  

   

  复制好之后,那么在vc6.0下配置的graphics图形库就已经配置成功了。下面我们通过一个例子来验证下(这里直接使用EasyX帮助文档中的实例进行测试)。

  

1 #include <graphics.h>      // 就是需要引用这个图形库
2 #include <conio.h>
3 void main()
4 {
5     initgraph(640, 480);   // 这里和 TC 略有区别
6     circle(200, 200, 100); // 画圆,圆心(200, 200),半径 100
7     getch();               // 按任意键继续
8     closegraph();          // 关闭图形界面
9 }

圆的实例源码

  

// 编译环境:Visual C++ 6.0,EasyX 2014冬至版
// http://www.easyx.cn
//
#include <graphics.h>
#include <time.h>
#include <conio.h>

#define MAXSTAR 200    // 星星总数

struct STAR
{
    double    x;
    int        y;
    double    step;
    int        color;
};

STAR star[MAXSTAR];

// 初始化星星
void InitStar(int i)
{
    star[i].x = 0;
    star[i].y = rand() % 480;
    star[i].step = (rand() % 5000) / 1000.0 + 1;
    star[i].color = (int)(star[i].step * 255 / 6.0 + 0.5);    // 速度越快,颜色越亮
    star[i].color = RGB(star[i].color, star[i].color, star[i].color);
}

// 移动星星
void MoveStar(int i)
{
    // 擦掉原来的星星
    putpixel((int)star[i].x, star[i].y, 0);

    // 计算新位置
    star[i].x += star[i].step;
    if (star[i].x > 640)    InitStar(i);

    // 画新星星
    putpixel((int)star[i].x, star[i].y, star[i].color);
}

// 主函数
void main()
{
    srand((unsigned)time(NULL));    // 随机种子
    initgraph(640, 480);            // 创建绘图窗口

    // 初始化所有星星
    for(int i = 0; i < MAXSTAR; i++)
    {
        InitStar(i);
        star[i].x = rand() % 640;
    }

    // 绘制星空,按任意键退出
    while(!kbhit())
    {
        for(int i = 0; i < MAXSTAR; i++)
            MoveStar(i);
        Sleep(20);
    }

    closegraph();                    // 关闭绘图窗口
}

星空实例源码

  

 1 // 编译环境:Visual C++ 6.0,EasyX 2014冬至版
 2 // http://www.easyx.cn
 3 //
 4 #include <graphics.h>
 5 #include <conio.h>
 6
 7 void main()
 8 {
 9     // 创建绘图窗口
10     initgraph(640, 480);
11
12     // 画渐变的天空(通过亮度逐渐增加)
13     float H = 190;        // 色相
14     float S = 1;        // 饱和度
15     float L = 0.7f;        // 亮度
16     for(int y = 0; y < 480; y++)
17     {
18         L += 0.0005f;
19         setlinecolor( HSLtoRGB(H, S, L) );
20         line(0, y, 639, y);
21     }
22
23     // 画彩虹(通过色相逐渐增加)
24     H = 0;
25     S = 1;
26     L = 0.5f;
27     setlinestyle(PS_SOLID, 2);        // 设置线宽为 2
28     for(int r = 400; r > 344; r--)
29     {
30         H += 5;
31         setlinecolor( HSLtoRGB(H, S, L) );
32         circle(500, 480, r);
33     }
34
35     // 按任意键退出
36     getch();
37     closegraph();
38 }

彩虹实例源码

 

 *.注意:EasyX不支持.c,只支持.cpp.

其中,在我们解压的文件夹内有一个EasyX的帮助文档,里面有很多的关于graphics图形库函数的介绍,可以参考它进行学习。

时间: 2024-12-26 09:33:34

使用graphics.h来绘制图形的相关文章

Android中android.graphics下面的绘制图形类Canvas,Paint,Bitmap,Drawable

1.概念区别: 很多网友刚刚开始学习Android平台,对于Drawable.Bitmap.Canvas和Paint它们之间的概念不是很清楚, 其实它们除了Drawable外早在Sun的J2ME中就已经出现了,但是在Android平台中,Bitmap.Canvas相关的都有所变化. 首先让我们理解下Android平台中的显示类是View,但是还提供了底层图形类android.graphics,今天所说的这些均为graphics底层图形接口. Bitmap - 称作位图,一般位图的文件格式后缀为b

图解在VC里使用graphics.h绘图(类似TC)

1 www.easyx.cn 下载 EasyX 库 我下的2014;解压后如下图: 2 根据自己的VC 版本进行安装 3 在控制台画一个圆 #include <graphics.h> // 引用图形库 #include <conio.h> void main() { initgraph(640, 480); // 初始化绘图窗口 circle(200, 200, 100); // 画圆,圆心(200, 200),半径 100 getch(); // 按任意键继续 closegrap

iOS开发UI篇——Core Animation核心动画CAShapeLayer(绘制图形等)简介

重点: 获取绘制图形        Layer CAShapeLayer *shapeLayer = [CAShapeLayer layer];     设置图形有线颜色   [CAShapeLayer layer].strokeColor = [UIColor redColor].CGColor;      设置图形填充颜色   [CAShapeLayer layer].fillColor = [UIColor clearColor].CGColor;   设置图形线宽      [CASha

SurfaceView绘制图形

一.什么是SurfaceView 官方文档: SurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的Surface.你可以控制这个Surface的格式和尺寸.Surfaceview控制这个Surface的绘制位置.        surface是纵深排序(Z-ordered)的,这表明它总在自己所在窗口的后面.surfaceview提供了一个可见区域,只有在这个可见区域内 的surface部分内容才可见,可见区域外的部分不可见.surface的排版显示受到视图层级关

千呼万唤 HTML 5 (8) - 画布(canvas)之绘制图形

[索引页][源码下载] 作者:webabcd 介绍HTML 5: 画布(canvas)之绘制图形 画布 Demo - 画布的基本概念及 Demo,canvas.getContext(), CanvasRenderingContext2D, canvas.width, canvas.height, canvas.toDataURL() 在画布上绘制矩形 - canvas.getContext(), fillRect(), fillStyle, lineWidth, strokeStyle, str

canvas 绘制图形

什么是canvas? <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成. <canvas> 标签只是图形容器,您必须使用脚本来绘制图形. 方法属性 颜色.样式和阴影 属性 描述 fillStyle 设置或返回用于填充绘画的颜色.渐变或模式. strokeStyle 设置或返回用于笔触的颜色.渐变或模式. shadowColor 设置或返回用于阴影的颜色. shadowBlur 设置或返回用于阴影的模糊级别. shadowOffsetX 设置或返回

【UWP通用应用开发】编辑文本、绘制图形、3D透视效果及绘制时钟实战

编辑文本及键盘输入 相信大家都会使用TextBox,但如果要让文本在TextBox中换行该怎么做呢?将TextWrapping属性设置为Wrap,将AcceptsReturn属性设置为True就好咯. PasswordBox很明显就是一个密码框了,和其他的控件相比其有2个特殊之处,一个是其可以用MaxLength来控制最大的长度,一个是用PasswordChanged来捕捉密码的改名.显然比如QQ密码的MaxLength就是16位了,而PasswordChanged可以用来监测比如用户设置的密码

Windows App开发之编辑文本与绘制图形

编辑文本及键盘输入 相信大家都会使用TextBox,但如果要让文本在TextBox中换行该怎么做呢?将TextWrapping属性设置为Wrap,将AcceptsReturn属性设置为True就好咯. PasswordBox很明显就是一个密码框了,和其他的控件相比其有2个特殊之处,一个是其可以用MaxLength来控制最大的长度,一个是用PasswordChanged来捕捉密码的改名.显然比如QQ密码的MaxLength就是16位了,而PasswordChanged可以用来监测比如用户设置的密码

JAVA程序设计(12.2)---- 多态、监听器初级应用:在窗口中绘制图形,可以选择圆形 正方形 线条

1.在800 *800 的窗口中加入3个按钮 可以选择当前的画笔画出什么样的图形 有圆 正方形 直线 三种 JFrame 监听器使用 内部类 匿名内部类 接口 多态 1.先做所有图形的抽象类 package com.lovo.homework; import java.awt.Color; import java.awt.Graphics; /** * 抽象类:图形 * @author Abe * 属性:起点坐标 终点坐标 颜色 */ public abstract class Figure {