C语言如何画以一维数组为横坐标,和纵坐标的图

Python012

C语言如何画以一维数组为横坐标,和纵坐标的图,第1张

因为你没有分数,我就不写程序了,我就只给你说过方向如果是C语言的画,画直线的头文件是包含在#include"graphics.h"中现在,我们来定义4个变量x1,y1,x2,y2我现在假定你的a b数组是相等的,并且长度已知为length那么 我用for循环for(int i=0i<length-1i++){ x1=a[i]y1=b[i] x2=a[i+1]y2=b[i+1] line(x1,y1,x2,y2)}完成画图希望以上对你有帮助

#include "Conio.h"

#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

}