c语言写画图程序

c语言写画图程序,第1张

#include<stdio.h>

#include<graphics.h>

main()

{

int gm,gd=DETECT

int a,T,X,R=100

scanf("%d",&a)

T=200,

X=a*T

initgraph(&gd,&gm,"")/*双引号戚悔卜内填bgi文件夹在你电脑中的目录,如在c:\tc\bgi,且c文件在高穗c:\tc\programfiles下,则填"..\\bgi"*/

circle(X,T,R)/前尺*R为半径*/

getch();

closegraph()

}

可以啊!首先要用#include"graphics.h"这个库函数,然后你需要按如下步骤来写

#include"graphics.h"

main()

{ int gdrive=DETECT,gmode/*定义两个参数:图形驱动和图形模式*/

initgraph(&gdrive,&gmode,"")/*初始化图形模式,第三个参数填的是路径*/

registerbgidriver(EGAVGA_driver)/*这个是用来注册图形模式来建立独立图洞纯粗形运行程序*/

bar(x1,y1,x2,y2)/*画矩形*/

circle(x1,y1,r)/*画圆*/

getch()

closegraph()/*关闭图形模式*/

}

如果需要其他的函数的话,

画点函数

void far putpixel(int x, int y, int color)

关于点的另外一个函数是:

int far getpixel(int x, int y)

它获得当前点(x, y)的颜色值。

有关坐标位置的函数

int far getmaxx(void)

返回x轴的最大值。

int far getmaxy(void)

返回y轴的最大值。

int far getx(void)

返回游标在x轴的位置。

void far gety(void)

返回游标有y轴的位置。

void far moveto(int x, int y)

移动游标到(x, y)点, 不是画点, 在移动过程中亦画点裤高。

void far moverel(int dx, int dy)

移动游标从现行位置(x, y)移动到(x+dx, y+dy)的位置, 移动过程中不画点。

void far line(int x0, int y0, int x1, int y1)

画一条从点(x0, y0)到(x1, y1)的直线。

void far lineto(int x, int y)

画一作从现行游标到点(x, y)的直线。

void far linerel(int dx, int dy)

画一条从现行游标(x, y)到按相对增量确定的点(x+dx, y+dy)的直线。

void far circle(int x, int y, int radius)

以(x, y)为圆心, radius为半径, 画一个圆。

void far arc(int x, int y, int stangle, int endangle, int radius)

以(x, y)为圆心, radius为半径, 从stangle开始到endangle结束(用度表示)

画一段圆弧线。在TURBO C中规定x轴正向为0度, 逆时针方向旋转一周, 依次为

90, 180, 270和360度(其它有关函数也按此规定, 不再重述)。

void ellipse(int x, int y, int stangle, int endangle, int xradius,

int yradius)

以(x, y)为中心, xradius, yradius为x轴和y轴半径, 从角stangle 开始到

endangle结束画一段椭圆线, 当stangle=0, endangle=360时, 画出一个完整的

椭圆。

void far rectangle(int x1, int y1, int x2, inty2)

以(x1, y1)为左上角, (x2, y2)为右下角画一个矩形框。

void far drawpoly(int numpoints, int far *polypoints)

画一个顶点数为numpoints, 各顶点坐标由polypoints 给出的多边形。

polypoints整型数组必须至少有2倍顶点数个无素。每一个顶点的坐标都定义为x,

y, 并且x在前。值得注意的是当纳镇画一个封闭的多边形时, numpoints 的值取实际

多边形的顶点数加一, 并且数组polypoints中第一个和最后一个点的坐标相同。

void far bar(int x1, int y1, int x2, int y2)

确定一个以(x1, y1)为左上角, (x2, y2)为右下角的矩形窗口, 再按规定图

模和颜色填充。

说明: 此函数不画出边框, 所以填充色为边框。

void far bar3d(int x1, int y1, int x2, int y2, int depth, int

topflag)

当topflag为非0时, 画出一个三维的长方体。当topflag为0时, 三维图形不

封顶, 实际上很少这样使用。

说明: bar3d()函数中, 长方体第三维的方向不随任何参数而变, 即始终为

45度的方向。

void far pieslice(int x, int y, int stangle, int endangle, int

radius)

画一个以(x, y)为圆心, radius为半径, stangle为起始角度, endangle 为

终止角度的扇形, 再按规定方式填充。当stangle=0, endangle=360 时变成一个

实心圆, 并在圆内从圆点沿X轴正向画一条半径。

void far sector(int x, int y, int stanle, intendangle, int

xradius, int yradius)

画一个以(x, y)为圆心分别以xradius, yradius为x轴和y轴半径, stangle

为起始角, endangle为终止角的椭圆扇形, 再按规定方式填充。

清屏函数 cleardevice()用这些应该足够了吧!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12288891.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存