c语言函数曲线绘制 c++绘制函数曲线

C语言编程绘制曲线,会的来TC下调试通过
/*******************************************************
*Author:Wacs5
*Date:20090105(YYYY-MM-DD)
*Function:画简易c语言函数曲线绘制的曲线图 *********************************************************/
#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=https://www.04ip.com/post/maxdata=data[0];
for (i=1;in;i)
{
if (mindatadata[i])
mindata=https://www.04ip.com/post/data[i];
if (maxdatadata[i])
maxdata=https://www.04ip.com/post/data[i];
}
mindata=https://www.04ip.com/post/floor(mindata);
maxdata=https://www.04ip.com/post/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;in;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(in);
getch();
closegraph();
return 0;
}
采用c语言绘制任意函数曲线(双曲线,二次函数,一次函数)??怎么做??在c的标准库中有graphic.h头文件 , 实现了很多画图函数 比如 lineto,moveto , arc , (函数名可能记错,好久没用了-.-!)
直线:起点加终点就行 。
二次曲线,比如抛物线,那就以定长拆分成小直线 。双曲线同理 。
抛物线,和双曲线用定长拆分,估计很难计算 。要是精度要求不高就根据情况改成定x,或者定y偏移的拆分 , 要是精度要求高那就去找直线拟合曲线的算法或者双圆弧拟合曲线的算法 。
怎样用c语言画函数曲线图/*请不要看完c语言函数曲线绘制了就走人*/
/*帮帮忙,采纳c语言函数曲线绘制我c语言函数曲线绘制的答案!*/
#includestdio.h
#includemath.h
main(){
double
y;
int
【c语言函数曲线绘制 c 绘制函数曲线】x,m,i;
printf("y=sin(x)
[0x2*pi]\n");
for(y=1;y=-1;y-=0.1){
if(y=0){
m=asin(y)*10;
for(x=1;xm;x)printf("
");
printf("*",m);
for(;x31-m;x)printf("
");
printf("*\n");}
else{
m=-1*asin(y)*10;
for(i=0;i32;i)printf("
");
for(x=1;xm;x)printf("
");
printf("*",m);
for(;x31-m;x)printf("
");
printf("*\n",m);
}
}
}
用C语言绘制摆动函数的动态曲线#include "stdio.h"
#include "conio.h"
#include "graphics.h"
#include "math.h"
#define closegr closegraph
void initgr(void) /* BGI初始化 */
{
int gd = DETECT, gm = 0; /* 和gd=VGA,gm=VGAHI是同样效果 */
registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件c语言函数曲线绘制的支持运行 */
initgraph(gd, gm, "");
}
main()
{
int i, j;
double a=5;
double t;
initgr(); /* BGI初始化 */
/*y=x;*/
moveto(0,getmaxy()/2);
for (i=0;i4*314;i){
t=(double)i/10;
j=(int)(a*(1-cos(t/10))*10);
lineto(a*(t-sin(t/10)*10),getmaxy()/2-j);
}
getch(); /* 暂停一下c语言函数曲线绘制,看看前面绘图代码c语言函数曲线绘制的运行结果 */
closegr(); /* 恢复TEXT屏幕模式 */
}
请问怎么用c语言画出希尔伯特曲线呢#include graphics.h
#include conio.h
int g_len; // Hilbert 曲线c语言函数曲线绘制的单位长度
// 递归绘制 Hilbert 曲线
void hilbert(LPCTSTR cmd, int level)
{
static BYTE d = 0;// 方向
static POINT c[4] = {1, 0, 0, -1, -1, 0, 0, 1}; // 方向对应的轴系数
if (level0) return;
// 处理命令字符串
int i = 0;
while(cmd[i])
{
switch(cmd[i])
{
case ' ': d = (d1)3;break;
case '-': d = (d - 1)3;break;
case 'X': hilbert(" YF-XFX-FY ", level - 1);break;
case 'Y': hilbert("-XF YFY FX-", level - 1);break;
case 'F': linerel(c[d].x * g_len, c[d].y * g_len); break;
}
}
}
// 主函数
void main()
{
// 设置绘图环境
initgraph(800, 600);// 设置窗口大小
outtextxy(20, 550, "按 1~8 显示不同级别的 Hilbert 曲线c语言函数曲线绘制,按 ESC 退出 。");
rectangle(143, 23, 657, 537);// 绘制表示范围的矩形框
setorigin(144, 24);// 设置原点坐标
setcolor(RED);// 设置颜色
setfillstyle(BLACK);
int level = '5';// 设置初始级别
do
{
if (level = '1'level = '8')// 仅处理 1~8
{
level -= '0';// 转换为对应的数字值
bar(0, 0, 511, 511);// 清空绘图区
g_len = 512level;// 计算单位长度
moveto(g_len / 2, 512 - g_len / 2); // 设定起点
hilbert("X", level);// 递归绘制 Hilbert 曲线
}
}
while( (level = getch()) != 27 );// 按 ESC 退出
closegraph();
}
c语言函数曲线绘制的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c绘制函数曲线、c语言函数曲线绘制的信息别忘了在本站进行查找喔 。

    推荐阅读