当前位置:首页 » 编程语言 » c语言曲线图

c语言曲线图

发布时间: 2022-08-09 21:37:14

1. c语言程序设计问题,大神进,高分悬赏。。。。初等函数曲线图形的简易绘制

可以做一个二维[整形或char类型]数组,行列分别是屏幕的行列数,然后,通过计算在修改对应位置元素的值就可以,然后将数组元素打印出来(这里以char类型为例):

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

#define ROW 25
#define COL 84
char table[ROW][COL];

void initTable()
{
for(int i = 0; i < ROW; i++)
{
for(int j = 0; j < COL; j++)
{
table[i][j] = ' ';
}
}
}

int main(int argc, char*argv[])
{
// 这里以求cos(x) 为例

// 因为行列数为整形,所以这里对所求结果向下取整
// 这里以第20行为横坐标位置

// 先绘制x,y坐标
for(int row = 0; row < ROW; row++)
{
table[row][0] = '|';
}
table[20][0] = '+';
for(int col = 1; col < COL; col++)
{
table[20][col] = '-';
}
table[0][0] = '^';
table[20][COL - 1] = '>';

// 这里随x计算cos的值,并将对应的坐标处的字符替换为'*';

for(int x = 0; x < COL - 1; x++)
{
table[5 * ((int)(cos(x)))][x] = '*';
}

// 接下来就是逐行输出了
for(int i = 0; i < ROW; i++)
{
for(int j = 0; j < COL; j++)
{
printf("%c", table[i][j]);

}
}
system("pause");
}

2. 用c语言写程序,此程序能画出来函数y=2x+5的曲线图形。

此题把数学问题转化为用C语言描述即可,很多画图问题可以使用这种方法。

  1. 假设屏幕左上角为坐标轴原点



#include<stdio.h>
#defineMAX30//选定曲线要显示的范围,因为一次函数是一条直线,所以它的显示范围无穷
intmain()
{
intx,y;
for(y=30;y>=0;y--)
{
for(x=0;x<MAX;x++)
{
if(y==2*x+5)
{
printf("*");
}
else
{
printf("");//空格,不满足y=2x+5的点
}
}
printf(" ");//x轴已经到显示范围,所以需要换行。
}
return0;
}

3. c语言编程绘制曲线

TC下调试通过

/*******************************************************
*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=maxdata=data[0];
for (i=1;i<n;i++)
{
if (mindata>data[i])
mindata=data[i];
if (maxdata<data[i])
maxdata=data[i];
}
mindata=floor(mindata);
maxdata=ceil(maxdata);

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=0;i<n;i+=n/3)
{
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=(maxdata-mindata)/3;i<=maxdata-mindata;i+=(maxdata-mindata)/3)
{
j=y0-i*pery;
line(x0,j,x0-2,j); /*刻度线*/
sprintf(str,"%d",(int)mindata+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;
}
求采纳为满意回答。

4. 怎样用c语言画函数曲线图

/*请不要看完了就走人*/
/*帮帮忙,采纳我的答案!*/
#include<stdio.h>
#include<math.h>
main(){
double
y;
int
x,m,i;
printf("y=sin(x)
[0<x<2*pi]\n");
for(y=1;y>=-1;y-=0.1){
if(y>=0){
m=asin(y)*10;
for(x=1;x<m;x++)printf("
");
printf("*",m);
for(;x<31-m;x++)printf("
");
printf("*\n");}
else{
m=-1*asin(y)*10;
for(i=0;i<32;i++)printf("
");
for(x=1;x<m;x++)printf("
");
printf("*",m);
for(;x<31-m;x++)printf("
");
printf("*\n",m);
}
}
}

5. 采用c语言绘制任意函数曲线(双曲线,二次函数,一次函数)怎么做

在c的标准库中有graphic.h头文件,实现了很多画图函数 比如 lineto, moveto, arc,(函数名可能记错,好久没用了-.-!)
直线:起点加终点就行。
二次曲线,比如抛物线,那就以定长拆分成小直线。双曲线同理。
抛物线,和双曲线用定长拆分,估计很难计算。要是精度要求不高就根据情况改成定x,或者定y偏移的拆分,要是精度要求高那就去找直线拟合曲线的算法或者双圆弧拟合曲线的算法。

6. 大大们,跪求怎么用C语言画曲线图啊例如画传递函数G(jk)=(j5k+2)/[jk(0.1jk+1)(jk+1)]

TC 下可以用 graphic.h 里的函数。
VC 下。。还是用 C++ 的 GUI 要省事些。

事实上,最省事的方法是直接用 matlab、excel、vb 等。

7. c语言画曲线

#include <stdio.h>
#include "genlib.h"
#include "graphics.h"
main()
{
InitGraphics();
MovePen(1.5,1.0);
DrawArc(0.5,90.180);
}

这个是c语言的画圆弧的代码,不过我在vc ,tc上运行的话,它都是说没这个"genlib.h"头文件的,所以机子上到现在还是没运行成功,这个是有本书上的原代码,那个叫《c语言的科学和艺术》,不妨去看看!

8. C语言编程 绘制曲线,会的来

TC下调试通过

/*******************************************************
*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=maxdata=data[0];
for (i=1;i<n;i++)
{
if (mindata>data[i])
mindata=data[i];
if (maxdata<data[i])
maxdata=data[i];
}
mindata=floor(mindata);
maxdata=ceil(maxdata);

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=0;i<n;i+=n/3)
{
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=(maxdata-mindata)/3;i<=maxdata-mindata;i+=(maxdata-mindata)/3)
{
j=y0-i*pery;
line(x0,j,x0-2,j); /*刻度线*/
sprintf(str,"%d",(int)mindata+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;
}

9. 怎么用c语言画实时曲线

楼主您好,你这个分值已经吸引了我
在下不才,也是自己写过一些c语言画图模式下的程序。所以我认为我在这一方面具有一定的权威.
(文本模式下)
我对于您的问题理解的不是很透彻,但是看字面意思来说,您是想当前坐标赋值给变量,我假设变量为(x、y)分别为x轴、y轴坐标变量。则将坐标赋值,为x=getx();y=gety();
(画图模式下)
在这里,我一般是直接对寄存器进行中断取得
鼠标
的值。在对他进行操作。
c语言只有以上2种模式,通过你的提问,我觉得你问的是文本模式下的。如果你觉得我回答不够详细,可以直接加QQ:942690451
询问。
另外,虚机团上产品团购,超级便宜

热点内容
我的世界如何做服务器 发布:2025-01-21 12:16:23 浏览:527
怎样建立算法 发布:2025-01-21 12:12:14 浏览:838
凸包的graham算法 发布:2025-01-21 12:00:00 浏览:146
jsonobject转java对象 发布:2025-01-21 12:00:00 浏览:306
macpython3默认 发布:2025-01-21 11:58:26 浏览:261
芒果服务器是什么意思 发布:2025-01-21 11:57:54 浏览:40
微信聊天服务器错误什么意思 发布:2025-01-21 11:56:13 浏览:460
linuxtomcat不能访问 发布:2025-01-21 11:47:11 浏览:394
刷新器需要什么配置 发布:2025-01-21 11:09:28 浏览:972
jedis源码 发布:2025-01-21 11:08:24 浏览:890