c语言程序设计 关于sin函数的 高分求助
设计题目:正弦函数的图形表示一、课程设计内容:用C语言编写软件完成以下任务:在图形模式下,绘制正弦函数sin(x)在x1~x2之间的图形二、课程设计要求程序质量:1、贯彻...
设计题目:正弦函数的图形表示
一、课程设计内容:
用C语言编写软件完成以下任务:
在图形模式下,绘制正弦函数sin(x)在x1~x2之间的图形
二、课程设计要求
程序质量:
1、贯彻实际驱动的程序设计思想。
2、用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。
3、用户界面中的菜单至少应包括“输入X的的区间”、“开始绘制”、“退出”3项。
4、代码应适当缩进,并给出必要的注释,以争强程序的可读性。
没办法 只能用c语言啊 愁~~~!! 展开
一、课程设计内容:
用C语言编写软件完成以下任务:
在图形模式下,绘制正弦函数sin(x)在x1~x2之间的图形
二、课程设计要求
程序质量:
1、贯彻实际驱动的程序设计思想。
2、用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。
3、用户界面中的菜单至少应包括“输入X的的区间”、“开始绘制”、“退出”3项。
4、代码应适当缩进,并给出必要的注释,以争强程序的可读性。
没办法 只能用c语言啊 愁~~~!! 展开
7个回答
展开全部
在你的c程序里加入这两个头文件"math.h""graphics.h".
然后利用里面的函数就可以作了.在dos下画图是比较困难的.给你个例子参考一下:
#include<stdlib.h>
#include"graphics.h"
#include"math.h"
void sin_pixel(int x0,int y0,int x1,int y1,int color);
void main()
{
int driver,mode,n;
int a,b,c,d,colo;
printf("\n qing shu ru liang dian de zuo biao zhi.\n");
printf("\n qing yong kong ge fen ge :\n");
scanf("%d %d %d %d",&a,&b,&c,&d);
printf("\n qing shu ru color zhi.\n");
scanf("%d",&colo);
driver=VGA;
mode=VGAHI;
initgraph(&driver,&mode,"");
setbkcolor(0);
setcolor(15);
sin_pixel(a,b,c,d,colo);
}
void sin_pixel(int x0,int y0,int x1,int y1,int color)
{
//以下为伪代码,画出来的是一条直线,至于怎么计算sin值点,我帮不了你了,数学不行.你找个数学好的同学帮一下吧!
float x,dx,dy,k,y;
dx=x1-x0;
dy=y1-y0;
k=dy/dx;
if (fabs(k)<=1)
{
y=y0;
for(x=x0;x<=x1;x++)
{
putpixel(x,(int)(y+0.5),color);
y=y+k;
}
}
else
{
x=x0;
for(y=y0;y<=y1;y++)
{
putpixel((int)(x+0.5),y,color);
x=x+1/k;
}
}
getch();
}
然后利用里面的函数就可以作了.在dos下画图是比较困难的.给你个例子参考一下:
#include<stdlib.h>
#include"graphics.h"
#include"math.h"
void sin_pixel(int x0,int y0,int x1,int y1,int color);
void main()
{
int driver,mode,n;
int a,b,c,d,colo;
printf("\n qing shu ru liang dian de zuo biao zhi.\n");
printf("\n qing yong kong ge fen ge :\n");
scanf("%d %d %d %d",&a,&b,&c,&d);
printf("\n qing shu ru color zhi.\n");
scanf("%d",&colo);
driver=VGA;
mode=VGAHI;
initgraph(&driver,&mode,"");
setbkcolor(0);
setcolor(15);
sin_pixel(a,b,c,d,colo);
}
void sin_pixel(int x0,int y0,int x1,int y1,int color)
{
//以下为伪代码,画出来的是一条直线,至于怎么计算sin值点,我帮不了你了,数学不行.你找个数学好的同学帮一下吧!
float x,dx,dy,k,y;
dx=x1-x0;
dy=y1-y0;
k=dy/dx;
if (fabs(k)<=1)
{
y=y0;
for(x=x0;x<=x1;x++)
{
putpixel(x,(int)(y+0.5),color);
y=y+k;
}
}
else
{
x=x0;
for(y=y0;y<=y1;y++)
{
putpixel((int)(x+0.5),y,color);
x=x+1/k;
}
}
getch();
}
展开全部
#include<graphics.h>
#include<math.h>
void main()
{
int driver,mode,x,x1,x2,y1,y2,i,j,n,sign=1;
driver=DETECT;
mode=0;
initgraph(&driver,&mode,"");/*初使化*/
setcolor(RED);
puts("please input two int numbers(x1-x2):");/*输入区间的左右边界点的X轴坐标*/
scanf("%d%d",&x1,&x2);
for(x=x1;x<=x2;x++)
{ if(sign==1&&x%2!=0)/*如果X1是奇数的话,第一次时后把它变成偶数,以后不变*/
{ x=x+1;
sign=sign+1;
}
sign=sign+1;
if(x%2==0)
{ i=x;
y1=(int)80*sin(0.05*x)+100;/*振幅可以用一个变量控制,比如把80改成A,再赋值也可以
*/
putpixel(i,y1,YELLOW);
if(sign>=5)/*如果设得太小的话会有线乱七八糟的*/
{moveto(i,y1);
lineto(j,y2);
}
}
else{j=x;
y2=(int)80*sin(0.05*x)+100;
putpixel(j,y2,RED);
moveto(j,y2);
lineto(i,y1);
}
}
line(0,100,1000,100);
line(0,0,0,1000);
moveto(0,400);
outtext(" press anykey to exit ");
getch();
closegraph();
}
#include<math.h>
void main()
{
int driver,mode,x,x1,x2,y1,y2,i,j,n,sign=1;
driver=DETECT;
mode=0;
initgraph(&driver,&mode,"");/*初使化*/
setcolor(RED);
puts("please input two int numbers(x1-x2):");/*输入区间的左右边界点的X轴坐标*/
scanf("%d%d",&x1,&x2);
for(x=x1;x<=x2;x++)
{ if(sign==1&&x%2!=0)/*如果X1是奇数的话,第一次时后把它变成偶数,以后不变*/
{ x=x+1;
sign=sign+1;
}
sign=sign+1;
if(x%2==0)
{ i=x;
y1=(int)80*sin(0.05*x)+100;/*振幅可以用一个变量控制,比如把80改成A,再赋值也可以
*/
putpixel(i,y1,YELLOW);
if(sign>=5)/*如果设得太小的话会有线乱七八糟的*/
{moveto(i,y1);
lineto(j,y2);
}
}
else{j=x;
y2=(int)80*sin(0.05*x)+100;
putpixel(j,y2,RED);
moveto(j,y2);
lineto(i,y1);
}
}
line(0,100,1000,100);
line(0,0,0,1000);
moveto(0,400);
outtext(" press anykey to exit ");
getch();
closegraph();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上给的driver 和mode没有数据类型么? 楼上说得对,关键就是用initgraph()和putpixel()来画.然后注意左上是(x=0,y=0),DOS下VGA分辨率应该是640x480
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
老大,你可知道用C语言绘制出图形要多少代码不,换别的语言吧,java都比c要好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果哪天公司让我写这种东西,我就辞职....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询