#include "graphics.h"
#define closegr closegraph
void initgr(void) /* BGI初始化 */
{
int gd = DETECT, gm = 0/* 和gd = VGA,gm = VGAHI是同样效果 */
registerbgidriver(EGAVGA_driver)/* 注册BGI驱动后可以不需要.BGI文件的支持运行 */
initgraph(&gd, &gm, "")
}
void DrawCoord()
void Drawstg()
void Drawcurve()
int main(void)
{
initgr()/* BGI初始化 */
DrawCoord()
Drawstg()
Drawcurve()
getch()/* 暂停一下,看看前面绘图代码的运行结果 */
closegr()/* 恢复TEXT屏幕模式 */
return 0
}
void DrawCoord() /*画坐标系*/
{
line(50,40,50,400)/*y轴*/
line(50,400,600,400)/*x轴*/
line(50,40,45,50)/*箭头*/
line(50,40,55,50)
line(600,400,590,395)
line(600,400,590,405)
outtextxy(35,45,"y")
outtextxy(590,410,"x")
outtextxy(40,410,"O")
}
void Drawstg() /*画标尺*/
{
int x,y,i
x=50,y=400
for(i=0i<17i++)
{
line(x+5,y,x,y)
y-=20
}
x=50,y=400
for(i=0i<26i++)
{
line(x,y-5,x,y)
x+=20
}
}
void Drawcurve()/*画图示例*/
{
line(50,400,500,400-250)
}
下面是的是昨天的,但是修改了一下坐标的刻度./*******************************************************
*Author :Wacs5
*Date :20090105(YYYY-MM-DD)
*Function :画简易的曲线图 *********************************************************/
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <Graphics.h>
#define n 8
int main()
{
int i,j
float data[]={7,3,12,6,9,5,8,11}
char str[40]
int gdrive=DETECT,gmode,errorcode
int maxx,maxy
int perx,pery
int x0,x1,y0,y1
int coloraxis=2,colorline=3
float mindata,maxdata,ndata
initgraph(&gdrive,&gmode,"") /*初始化设备*/
if ((errorcode=graphresult())!=grOk) /*查错*/
{
printf("Graphics error:%s\nPress any key to exit:",grapherrormsg(errorcode))
getch()
exit(1)
}
maxx=getmaxx()
maxy=getmaxy()
mindata=0
maxdata=data[0]
for (i=1i<ni++)
if (maxdata<data[i])
maxdata=data[i]
perx=maxx/(n+4)
pery=maxy/(maxdata-mindata+4)
x0=2*perx
y0=maxy-2*pery
x1=maxx-2*perx
y1=2*pery
setcolor(coloraxis)
line(x0,y0,x1,y0)
line(x0,y0,x0,y1)
line(x1,y0,x1-4,y0+3)
line(x1,y0,x1-4,y0-3)
line(x0,y1,x0+3,y1+4)
line(x0,y1,x0-3,y1+4)
settextjustify(CENTER_TEXT,TOP_TEXT)
for (i=0i<=ni++)
{
j=x0+i*perx
line(j,y0,j,y0+2) /*刻度线*/
sprintf(str,"%d",i)
outtextxy(j,y0+4,str)
}
settextjustify(RIGHT_TEXT,CENTER_TEXT)
for (i=1i<=12i++)
{
j=y0-i*pery
line(x0,j,x0-2,j) /*刻度线*/
sprintf(str,"%d",i)
outtextxy(x0-4,j,str)
}
setcolor(colorline)
x1=x0+perx
y1=y0-(data[0]-mindata)*pery
circle(x1,y1,2)
moveto(x1,y1)
i=1
do
{
x1+=perx
y1=y0-(data[i]-mindata)*pery
lineto(x1,y1)
circle(x1,y1,2)
moveto(x1,y1)
i++
}while(i<n)
getch()
closegraph()
return 0
}