编制在同一幅画上打印y=sin(x) 和y=cos(x)图形的程序怎么写???

alcatel2 2003-12-14 06:14:52
编制在同一幅画上打印y=sin(x) 和y=cos(x)图形的程序怎么写???
...全文
322 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
YoziDream 2003-12-14
  • 打赏
  • 举报
回复
//以下提供一个大致的思路:
#include <math.h>

//假设屏幕大小为800*600象素
int main()
{
//(x,y)坐标
double x = 0;
for( x = 0; x<800; x++)
{
double y1 = 300 + sin(x); //在屏幕中间画sin(x)
double y2 = 300 + cos(x); //在屏幕中间画cos(x)
setpixel(x,y); //该函数因采用的环境不同而不同
}

return 0;
}

具体显示可能还需要做一些改进。
zhangfjj 2003-12-14
  • 打赏
  • 举报
回复
# define PAI 3.1415926
# define B 0.809
# include "graphics.h"
#include "math.h"
main()
{
int i,j,k,x0,y0,x,y,driver,mode;
float a;
driver=CGA;mode=CGAC0;
initgraph(&driver,&mode,"");
setcolor(3);
setbkcolor(GREEN);
x0=150;y0=100;
circle(x0,y0,10);
circle(x0,y0,20);
circle(x0,y0,50);
for(i=0;i<16;i++)
{
 a=(2*PAI/16)*i;
 x=ceil(x0+48*cos(a));
 y=ceil(y0+48*sin(a)*B);
 setcolor(2); line(x0,y0,x,y);}
setcolor(3);circle(x0,y0,60);
/* Make 0 time normal size letters */
settextstyle(DEFAULT_FONT,HORIZ_DIR,0);
outtextxy(10,170,"press a key");
getch();
setfillstyle(HATCH_FILL,YELLOW);
floodfill(202,100,WHITE);
getch();
for(k=0;k<=500;k++)
{
 setcolor(3);
 for(i=0;i<=16;i++)
 {
  a=(2*PAI/16)*i+(2*PAI/180)*k;
  x=ceil(x0+48*cos(a));
  y=ceil(y0+48+sin(a)*B);
  setcolor(2); line(x0,y0,x,y);
 }
 for(j=1;j<=50;j++)
 {
  a=(2*PAI/16)*i+(2*PAI/180)*k-1;
  x=ceil(x0+48*cos(a));
  y=ceil(y0+48*sin(a)*B);
  line(x0,y0,x,y);
 }
}
restorecrtmode();
}
这是一个在www.vcok.com的例子,是图形模式下画图的,你仔细看一下,
zhangfjj 2003-12-14
  • 打赏
  • 举报
回复
没对齐,就这个意思
zhangfjj 2003-12-14
  • 打赏
  • 举报
回复
如果在文本模式下,你将函数值放大50倍,
屏幕上一行对应着坐标轴上的一个x,在有值的地方输出'*',没有值的地方,输出空格就行了
# *
# * *
# * *
.....
用'#'绘制坐标轴,用'*'绘制曲线。
如果是在图形模式下,那更简单了。
用画点函数,在屏幕的适当位置画出点来就行
这个题目关键在于把坐标轴与屏幕联系起来

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧