精华内容
下载资源
问答
  • 您可能感兴趣的话题:C语言核心提示:笔者在开发县级电网调度自动化系统的过程中,碰到一个要绘制电力系统一次接线图的问题笔者在开发县级电网调度自动化系统的过程中,碰到一个要绘制电力系统一次接线图的问题....

    您可能感兴趣的话题:

    C语言

    核心提示:笔者在开发县级电网调度自动化系统的过程中,碰到一个要绘制电力系统一次接线图的问题

    笔者在开发县级电网调度自动化系统的过程中,碰到一个要绘制电力系统一次接线图的问题.由于电力系统一次接线图比较复杂,用一般的编程方法来绘制比较困难,因此,笔者用C语言开发了一个手工绘制电力系统一次接线图的键盘绘图程序,使用该程序绘制的一次接线图符合用户需求,效果良好.

    一、使用方法

    程序中定义了几个特殊键:

    \"V":画笔提起

    \"W":开始画图

    \"R":开始擦图

    \"S":当前图形存入文件

    \"E":调出已有文件

    \"C":画圆

    程序一运行,屏幕上出现一个黄色的边框来设定画图的区域,区域中间出现提起的画笔符号 ,当按下"W"键时,画笔符号变为 ,此时可移动方向键(上、下、左、右、左上、左下、右上、右下)来画图;当按下"R"键时,画笔符号变为 ,此时可移动方向键来擦图;在画图过程中,按下"C"键,可画出一个半径为20个象素点的圆;当结束画图时,按下"S"键,将画好的图形存盘;按下"E"键可调出已有的图形进行编辑.

    二、源程序清单

    # include \"graphics.h\"

    # include \"stdio.h\"

    # include \"fcntl.h\"

    # include \"stdlib.h\"

    main()

    void save(),load();

    void *wg,*rg,*vg,*fy;

    int driver,mode;

    int c=RED;

    int x=320,y=225;

    int x1,y1,x2,y2;

    int k,k1,k2;

    /* initialize grapher */

    detectgraph(&driver,&mode);

    initgraph(&driver,&mode,\"c:\\tc\");

    /* write the pen */

    bar(200,10,206,16);

    line(203,7,200,10);

    line(203,7,206,10);

    line(243,7,240,16);

    line(243,7,246,16);

    line(283,7,280,10);

    line(283,7,286,10);

    line(283,7,283,16);

    /* save the pen */

    wg=malloc(imagesize(200,7,206,16));

    rg=malloc(imagesize(240,7,246,16));

    vg=malloc(imagesize(280,7,286,16));

    fy=malloc(imagesize(200,7,206,16));

    getimage(200,7,206,16,wg);

    getimage(240,7,246,16,rg);

    getimage(280,7,286,16,vg);

    cleardevice();

    /* write the box */

    setcolor(YELLOW);

    rectangle(4,19,637,447);

    x1=x-3;

    y1=y+1;

    x2=x+3;

    y2=y+10;

    getimage(x1,y1,x2,y2,fy);

    putimage(x1,y1,vg,XOR_PUT);

    /* receive the command */

    for (;;)

    while (bioskey(1)==0);

    k=bioskey(0);

    putimage(x1,y1,fy,AND_PUT);

    if (((k&0x00ff)|0x00)==0)

    k1=k&0xff?0:k>>8; /* k1 is the specialkey value */

    else

    k2=k&0x00ff; /* k2 is the non-specialkey value */

    if (((k&0x00ff)|0x00)==0) /* Special key */

    switch(k1)

    case 45:

    restorecrtmode();

    exit(0);

    case 72:

    if (y>20)

    y=y-1;

    break;

    case 75:

    if (x>5)

    x=x-1;

    break;

    case 77:

    if (x<636)

    x=x+1;

    break;

    case 80:

    if (y<446)

    y=y+1;

    break;

    case 71:

    if ((x>5)&&(y>20))

    x=x-1;

    y=y-1;

    break;

    case 79:

    if ((x>5)&&(y<446))

    x=x-1;

    y=y+1;

    break;

    case 73:

    if ((x<636)&&(y>20))

    x=x+1;

    y=y-1;

    break;

    case 81:

    if ((x<636)&&(y<446))

    x=x+1;

    y=y+1;

    break;

    x1=x-3;

    y1=y+1;

    x2=x+3;

    y2=y+10;

    getimage(x1,y1,x2,y2,fy);

    /* non-special key */[Page]

    switch(k2)

    case 118: /* \'v\' */

    case 86: /* \'V\' */

    putimage(x1,y1,vg,OR_PUT);

    break;

    case 119: /* \'w\' */

    case 87: /* \'W\' */

    putimage(x1,y1,wg,OR_PUT);

    putpixel(x,y,c);

    break;

    case 114: /* \'r\' */

    case 82: /* \'R\' */

    putimage(x1,y1,rg,OR_PUT);

    putpixel(x,y,BLACK);

    break;

    case 115: /* \'s\' */

    case 83: /* \'S\' */

    save(\"pic.dat\");

    break;

    case 101: /* \'e\' */

    case 69: /* \'E\' */

    load(\"pic.dat\");

    break;

    case 99: /*\'c\'*/

    case 67: /*\'C\'*/

    setcolor(RED);

    circle(x,y,20);

    break;

    default:continue;

    /* function for screen picture save

    */

    void save(char *fname)

    FILE *fp;

    int i;

    register long j;

    char far *ptr;

    fp=fopen(fname,\"wb\");

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

    outportb(0x3CE,4);

    outportb(0x3CF,i);

    ptr=(char far *) 0xA0000000L;

    for (j=0;j<38400L;j++)

    putc(*ptr,fp);

    ptr++;

    fclose(fp);

    outportb(0x3CF,0);

    /* function for screen picture display

    */

    void load(char *fname)

    FILE *fp;

    register int i;

    int k4=1;

    register long j;

    char far *ptr;

    fp=fopen(fname,\"rb\");

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

    outportb(0x3C4,2);

    outportb(0x3C5,k4);

    ptr=(char far *)0xA0000000L;

    for (j=0;j<38400L;j++)

    *ptr=getc(fp);

    ptr++;

    k4*=2;

    fclose(fp);

    outportb(0x3C5,0xF);

    三、结束语

    该程序在Turbo C 2.0环境下运行通过,使用效果良好.可以根据具体需要,对该程序进行扩充,以增加绘图功能.

    展开全文
  • c语言graphics.h头文件介绍

    万次阅读 多人点赞 2018-11-21 20:51:51
    graphics.h是画图的头文件 如果没有easyx这个软件可以安装头文件 链接:https://pan.baidu.com/s/19Vyh-GRH3GRCg8JaQG5z_g  提取码:k3y2  只可以.cpp 实例: #include&lt;stdio.h&gt; #include&...

    graphics.h是画图的头文件

    如果没有easyx这个软件可以安装头文件

    链接:https://pan.baidu.com/s/19Vyh-GRH3GRCg8JaQG5z_g 
    提取码:k3y2 

    只可以.cpp

    实例:

    #include<stdio.h>
    #include<graphics.h>
    #include<conio.h>
    int main()
    {
    initgraph(700,700);//初始化窗口 也就是设定我们的程序框大小
    setcolor(RED);//设置绘图的颜色
    circle(200,200,100);//圆心(200,200),半径100
    rectangle(200,200,400,400);//绘制一个矩形
    line(200,200,500,500);//画线
    getch();
    closegraph;//关闭绘图程序界面
    }

    展开全文
  • graphics函数坦克图画:#include"graphics.h"#include"conio.h"void Tanke(int x,int y,int R,int TColor,int FColor){int i,j,d,t;d=R/4;t=d*0.6;setcolor(TColor);/*------------------------------------------...

    用graphics函数

    坦克图画:

    #include"graphics.h"

    #include"conio.h"

    void Tanke(int x,int y,int R,int TColor,int FColor)

    {

    int i,j,d,t;

    d=R/4;t=d*0.6;

    setcolor(TColor);

    /*--------------------------------------------*/

    line(x-R,y,x+R-t,y);

    line(x-R,y,x-R+d,y+2*d);

    line(x-R+d,y+2*d,x+3*d,y+2*d);

    line(x+3*d,y+2*d,x+R-t,y);

    /*--------------------------------------------*/

    line(x-R,y,x-R+t,y-t);

    line(x-R+t,y-t,x-2*d,y-t);

    line(x-2*d,y-t,x-2*d+t,y-d-t);

    line(x-2*d+t,y-d-t,x-3*d,y-d-t);

    line(x-3*d,y-d-t,x-3*d+t,y-2*d);

    line(x-3*d+t,y-2*d,x+R-t,y-2*d);

    line(x+R-t,y-2*d,x+R-t,y);

    /*-------------------------------------------*/

    line(x-3*d,y-d-t,x-2*d,y-t);

    /*-------------------------------------------*/

    line(x-R+d-t,y+2*(d-t),x+3*d+R*0.04,y+2*(d-t));

    for(i=0;i<2*(R/d-1);i++)

    line(x-3*d+i*d,y+2*(d-t),x-3*d+i*d,y+2*d);

    /*-------------------------------------------*/

    setfillstyle(1,TColor);

    bar(x-d*1.2,y-d*0.6,x+d*2,y-d*0.2);

    line(x-d*1.2,y-d*0.6,x-d*0.6,y-d*1.8);

    line(x-d*0.6,y-d*1.8,x+d*2.4,y-d*1.8);

    line(x+d*2.4,y-d*1.8,x+d*2,y-d*0.6);

    line(x+d*2.4,y-d*1.8,x+d*2.4,y-d*1.4);

    line(x+d*2,y-d*0.2,x+d*2.4,y-d*1.4);

    /*-------------------------------------------*/

    sector(x+d*0.6,y-d,0,180,d*1.2,d*1.4);

    /*-------------------------------------------*/

    for(i=0;i

    line(x+d*0.2,y-d*1.8+i,x-d*2.5,y-d*1.8+i);

    setfillstyle(1,FColor);

    bar(x-d*3,y-d*1.9,x-d*2.3,y-d*1.3); /*炮头(红色)*/

    }

    main()

    {

    int gd=DETECT,gm;

    initgraph(&gd,&gm,"");

    setcolor(0);

    Tanke(300,200,50,WHITE,RED);

    getch();

    closegraph();

    }

    展开全文
  • 由于电力系统一次接线图比较复杂,图上有一些特殊的符号,象变压器符号、开关符号等等,用一般的编程方法来绘制比较困难,因此,笔者用C语言开发了一个手工绘制电力系统一次接线图的键盘绘图程序,使用该程序绘制的...

    笔者在开发县级电网调度自动化系统的过程中,碰到一个要绘制电力系统一次接线图的问题。由于电力系统一次接线图比较复杂,图上有一些特殊的符号,象变压器符号、开关符号等等,用一般的编程方法来绘制比较困难,因此,笔者用C语言开发了一个手工绘制电力系统一次接线图的键盘绘图程序,使用该程序绘制的一次接线图符合用户需求,效果良好。

    bfcd9dd6458bcca422a8928d81cbb43c.png

    使用方法

    程序中定义了几个特殊键:

    "V”:画笔提起

    "W”:开始画图

    "R”:开始擦图

    "S”:当前图形存入文件

    "E”:调出已有文件

    "C”:画圆

    程序一运行,屏幕上出现一个黄色的边框来设定画图的区域,区域中间出现提起的画笔符号 ,当按下”W“键时,画笔符号变为 ,此时可移动方向键(上、下、左、右、左上、左下、右上、右下)来画图;当按下”R“键时,画笔符号变为 ,此时可移动方向键来擦图;在画图过程中,按下“C”键,可画出一个半径为20个象素点的圆;当结束画图时,按下“S”键,将画好的图形存盘;按下“E”键可调出已有的图形进行编辑。

    3.源程序清单

    # include "graphics.h"

    # include "stdio.h"

    # include "fcntl.h"

    # include "stdlib.h"

    main()

    void save(),load();

    void *wg,*rg,*vg,*fy;

    int driver,mode;

    int c=RED;

    int x=320,y=225;

    int x1,y1,x2,y2;

    int k,k1,k2;

    /* initialize grapher */

    detectgraph(&driver,&mode);

    initgraph(&driver,&mode,"c:c");

    /* write the pen */

    bar(200,10,206,16);

    line(203,7,200,10);

    line(203,7,206,10);

    line(243,7,240,16);

    line(243,7,246,16);

    line(283,7,280,10);

    line(283,7,286,10);

    line(283,7,283,16);

    /* save the pen */

    wg=malloc(imagesize(200,7,206,16));

    rg=malloc(imagesize(240,7,246,16));

    vg=malloc(imagesize(280,7,286,16));

    fy=malloc(imagesize(200,7,206,16));

    getimage(200,7,206,16,wg);

    getimage(240,7,246,16,rg);

    getimage(280,7,286,16,vg);

    cleardevice();

    /* write the box */

    setcolor(YELLOW);

    rectangle(4,19,637,447);

    x1=x-3;

    y1=y+1;

    x2=x+3;

    y2=y+10;

    getimage(x1,y1,x2,y2,fy);

    putimage(x1,y1,vg,XOR_PUT);

    /* receive the command */

    for (;;)

    while (bioskey(1)==0);

    k=bioskey(0);

    putimage(x1,y1,fy,AND_PUT);

    if (((k&0x00ff)|0x00)==0)

    k1=k&0xff?0:k>>8; /* k1 is the specialkey value */

    else

    k2=k&0x00ff; /* k2 is the non-specialkey value */

    if (((k&0x00ff)|0x00)==0) /* Special key */

    switch(k1)

    case 45:

    restorecrtmode();

    exit(0);

    case 72:

    if (y>20)

    y=y-1;

    break;

    case 75:

    if (x>5)

    x=x-1;

    break;

    case 77:

    if (x<636)

    x=x+1;

    break;

    case 80:

    if (y<446)

    y=y+1;

    break;

    case 71:

    if ((x>5)&&(y>20))

    x=x-1;

    y=y-1;

    break;

    case 79:

    if ((x>5)&&(y<446))

    x=x-1;

    y=y+1;

    break;

    case 73:

    if ((x<636)&&(y>20))

    x=x+1;

    y=y-1;

    break;

    case 81:

    if ((x<636)&&(y<446))

    x=x+1;

    y=y+1;

    break;

    x1=x-3;

    y1=y+1;

    x2=x+3;

    y2=y+10;

    getimage(x1,y1,x2,y2,fy);

    /* non-special key */

    switch(k2)

    case 118: /* 'v' */

    case 86: /* 'V' */

    putimage(x1,y1,vg,OR_PUT);

    break;

    case 119: /* 'w' */

    case 87: /* 'W' */

    putimage(x1,y1,wg,OR_PUT);

    putpixel(x,y,c);

    break;

    case 114: /* 'r' */

    case 82: /* 'R' */

    putimage(x1,y1,rg,OR_PUT);

    putpixel(x,y,BLACK);

    break;

    case 115: /* 's' */

    case 83: /* 'S' */

    save("pic.dat");

    break;

    case 101: /* 'e' */

    case 69: /* 'E' */

    load("pic.dat");

    break;

    case 99: /*'c'*/

    case 67: /*'C'*/

    setcolor(RED);

    circle(x,y,20);

    break;

    default:continue;

    /* function for screen picture save

    */

    void save(char *fname)

    FILE *fp;

    int i;

    register long j;

    char far *ptr;

    fp=fopen(fname,"wb");

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

    outportb(0x3CE,4);

    outportb(0x3CF,i);

    ptr=(char far *) 0xA0000000L;

    for (j=0;j<38400L;j++)

    putc(*ptr,fp);

    ptr++;

    fclose(fp);

    outportb(0x3CF,0);

    /* function for screen picture display

    */

    void load(char *fname)

    FILE *fp;

    register int i;

    int k4=1;

    register long j;

    char far *ptr;

    fp=fopen(fname,"rb");

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

    outportb(0x3C4,2);

    outportb(0x3C5,k4);

    ptr=(char far *)0xA0000000L;

    for (j=0;j<38400L;j++)

    *ptr=getc(fp);

    ptr++;

    k4*=2;

    fclose(fp); outportb(0x3C5,0xF);

    4.总结

    该程序在Turbo C 2.0环境下运行通过,使用效果良好。可以根据具体需要,对该程序进行扩充,以增加绘图功能。

    展开全文
  • #include <stdio.h> #include <malloc.h>...graphics.h> #define LEN sizeof(struct student)#include "math.h"#define PI 3.1415926 void main() {initgraph(680,680); while(1...
  • 程序一运行,屏幕上出现一个×××的边框来设定画图的区域,区域中间出现提起的画笔符号 ,当按下“W”键时,画笔符号变为 ,此时可移动方向键(上、下、左、右、左上、左下、右上、右下)来画图;当按下“...
  • c语言画图及小动画制作(graphics.h函数入门)
  • c语言画图函数

    2013-03-17 13:02:23
    图形和图像函数包含在graphics.h里面 (一) 像素函数 56. putpiel() 画像素点函数 57. getpixel()返回像素色函数 (二) 直线和线型函数 58. line() 画线函数 59. lineto() 画线函数 60. linerel() 相对画线...
  • C语言画图

    2013-04-06 21:19:12
    我的目的:在VC++6.0环境里,用C语言开发一个小游戏----俄罗斯方块 因为C语言有操作图形的库 因此在VC6.0里新建了工程 代码如下: #include "stdafx.h" #include <graphics.h> int main(int argc, ...
  • c语言画图示例

    2012-07-23 00:31:54
    程序源代码:#include "graphics.h"#include "math.h"#include "dos.h"#include "conio.h"#include "stdlib.h"#include "stdio.h"#include "stdarg.h"#define MAXPTS 15#define PI 3.1415926struct PTS {int x,y;...
  • #include "graphics。h"#include "stdio。h"#define MAX 200#define MAXX 30#define MAXY 30#define UP 18432#define DOWN 20480#define LEFT 19200#define RIGHT 19712#define ESC 283#define ENTER 7181#defi...
  • C语言实现键盘画图

    2019-07-03 16:41:18
    C语言实现键盘画图C语言实现键盘画图 1.引言笔者在开发县级电网调度自动化系统的过程中,碰到一个要绘制电力系统一次接线图的问题。由于电力系统一次接线图比较复杂,图上有一些特殊的符号,象...
  • c语言画图示例2

    2012-07-23 00:32:57
    程序源代码:#include "stdio.h"#include "graphics.h"#include "conio.h"main(){int x=360,y=160,driver=VGA,mode=VGAHI;int num=20,i;int top,bottom;initgraph(&driver;,&mode;,"");top=y-30;bottom=y-30;for(i=0...
  • C语言画图问题

    2008-10-20 09:25:00
    这样就自动加载了驱动程序 (如果前面的问题已经解决就说明已经加载了)如果没有加载 会发现它提供了第三方的图形驱动包 在TC下找到BGIOBJ.exe这个程序 必须确保EGAVGA.BGI已经加载在graphics.lib之中 发现他...
  • C语言如何实现画图教程C语言有丰富的数据结构和运算符。包含了各种数据结构,如整型、数组类型、指针类型和联合类型等,用来实现各种数据结构的运算。以下是小编为大家搜索整理的C语言如何实现画图教程,希望能给...
  • C语言画图函数(word)

    2009-11-18 18:31:28
    C与图形有关的函数 GRAPHICS.H 库文件
  • 由于电力系统一次接线图比较复杂,图上有一些特别的符号,象变压器符号、开关符号等等,用一般的编程方法来绘制比较困难,因此,笔者用C语言研发了一个手工绘制电力系统一次接线图的键盘绘图程式,使用该程式绘制的...
  • C语言画图的的疑问。

    2012-10-13 10:21:45
    我用的是DEV-c++.头文件#include <graphics.h>无法使用。 我又不喜欢Turbo C。 怎么办啊?
  • 问题描述:请使用宏定义画图,综合体现出initgraph、setbkcolor、circle。 程序源码: # define PAI 3.1415926 # define B 0.809 # include"graphics.h" #include"math.h" void main() { int...
  • graphics的随笔画程序基于c语言,在vs2017编译下通过。功能:鼠标左键按住,画图。点击右键,退出程序(需要graphics.h)
  • 压缩包内包含了玫瑰花程序以及C语言简单的绘图画图功能安装软件 软件自动识别vc++程序安装位置,无需更改,非vc++编译环境谨慎下载 #include #include <windows.h> #include #include <graphics.h> #...
  • C语言核心提示:在桌面上画图,只要几个api函数既可以实现,下面给出在c++builder中具体的方法如下在桌面上画图,只要几个api函数既可以实现,下面给出在c++builder中具体的方法如下:1、在头文件中定义变量private...
  • 在桌面上画图,只要几个api函数既可以实现,下面给出在c++builder中具体的方法如下:1、在头文件中定义变量private:graphics::tbitmap *bmp;2、图象变量的初始化:bmp=new graphics::tbitmap();bmp->...
  • 问题描述:利用ellipse and rectangle 画图。 程序源码: #include "stdio.h" #include "graphics.h" #include "conio.h" void main() { int driver=VGA,mode=VGAHI; int i,num=15...
  • C语言画图及小动画制作(graphisc.h函数入门) 写此教程的目的是为了给Sarah一点小小的入门砖。本人非牛,出错在所难免。敬请原谅。 学了这么长时间的C语言,总不能还停留在对话框上。因此想着弄点图形出来。而...
  • graphics.h头文件 C中的颜色说明 (Color Description in C) setbkcolor sets the background to the color specified by the color or the number. The argument color may be a name or a number as given in the ...
  • 其实很好解决,只要把EGAVGA.BGI文件复制到c项目文件夹即可;
  • 由于电力系统一次接线图比较复杂,用一般的编程方法来绘制比较困难,因此,用C语言开发了一个手工绘制电力系统一次接线图的键盘绘图程序,使用该程序绘制的一次接线图符合用户需求,效果良好。下面小编给大家分享下...
  • 非常简单的tc画图的应用 老师布置的作业,多边形扫描中的边标志填充算法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,452
精华内容 580
关键字:

c语言graphics画图

c语言 订阅