改成VBA绘制余弦加速曲线凸轮曲线

#include&stdio.h&
#include&math.h&
int main()
for(y=1;y&=-1;y-=0.1) /*y为列方向,值从1到-1,步长为0.1*/
m=acos(y)*10; /*计算出y对应的弧度m,乘以10为图形放大倍数*/
for(x=1;x&m;x++) printf(& &);
printf(&*&); /*控制打印左侧的 * 号*/
for(;x&62-m;x++)printf(& &);
printf(&*\n&); /*控制打印同一行中对称的右侧*号*/
------解决方案--------------------
3.1415....探讨兀是多大的数?引用:任务: 用 * 在屏幕上绘出 [0, 2兀] 的 cos()的图像, 不能使用数组。
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有c语言绘制余弦曲线,请给出详细的注释_百度知道
c语言绘制余弦曲线,请给出详细的注释
#include&stdio.h&#include&math.h&void main(){
for(y=1;y&=-1;y-=0.1)
/*y为列方向,值从1到-1,步长为0.1*/
m=acos(y)*10;
/*计算出y对应的弧度m,乘以10为图形放大倍数*/
for(穿梗扁妓壮幻憋潍铂璃x=1;x&m;x++) printf(& &);
printf(&*&);
/*控制打印左侧的 * 号*/
for(;x&62-m;x++)printf(& &);
printf(&*\n&);
/*控制打印同一行中对称的右侧*号*/
}}还是不大明白,请再详细的解释一下,谢谢
提问者采纳
数字62是 2π(3.1415926)*10 的近似值,这下该明白了吧。也就是说y变量控制着*所在第几行,而x变量控制着*在每行中的应该出现的位置。呵呵,原理穿梗扁妓壮幻憋潍铂璃是这样的,这是一个用*来描绘余弦曲线的程序,而我们知道printf在输出的时候如果不指定位置,他是默认从左到右输出,当加了\n控制符时,他会换行下一行仍是从左到右输出,而模拟余弦曲线时为了让*在该出现的位置出现我们必须控制printf函数输出*的位置那么什么也不出也不行,只能用printf输出“空格”,而空格是看不见的,能达到同样效果。这样在每行,没有曲线的位置输出的是空格而有曲线的位置就输出了*。最后所有行的*就组成了余弦曲线。如下所示(字母V,有*的每行中*的前面是有空格的):
其他类似问题
为您推荐:
余弦的相关知识
其他1条回答
恩,问题快过期了,把分给我吧。感谢
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁CAXA电子图版中的曲线绘制_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
CAXA电子图版中的曲线绘制
上传于||文档简介
&&C​A​X​A​电​子​图​版​中​的​曲​线​绘​制
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
你可能喜欢您所在的位置: &
余弦曲线(1)
余弦曲线(1)
清华大学出版社
《Java趣味编程100例》第1章变幻多姿的图表,本章将带你进入变换多姿的图表世界,体会图表编程带来的乐趣。本节为大家介绍余弦曲线。
1.3& 余弦曲线(1)
1.问题描述
在屏幕上画出余弦函数cos(x)曲线,如图1.6所示。
图1.6& 余弦函数cos(x)曲线
2.问题分析
连续的曲线是由点组成的,点与点之间距离比较近,看上去就是曲线了,画图的关键是画出每个点。Java提供了三角函数方法,直接调用cos()方法就可以根据x坐标计算出y坐标。需要注意的是,cos()方法输入的参数是弧度值,要进行坐标转换,同样,得到的结果也要进行转换处理。从图1.6中可以看出,这条余弦曲线有两个周期,我们可以把x坐标控制在0~720。
(1)确定程序框架
从图1.6中,我们可以发现,整个图形包括x轴、y轴及余弦曲线。控制台不方便输出图形,这里以Applet形式输出。这样我们就可以写出程序框架了,代码如下:public&class&Ch1_3&extends&&Applet& &{ &&&&&int&x,y; &&&&&public&void&start()&&&&&&&&&//当一个Applet被系统调用时,系统会自动调用&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&start()方法 &&&&&{ &&&&&Graphics&g=getGraphics();&&&//画画之前,必须先取得画笔 &&&&&//画x轴 &&&&&//画y轴 &&&&&//画cos(x)曲线 &&&&&} &} &
(2)画x轴
为了画出图1.6所示效果,我们可以把坐标原点设定为(360,200),x轴就是从左到右的很多点组成,通过循环语句很容易实现,代码如下:
for(x=0;x=750;x+=1) &{ &&&&&g.drawString("•",x,200);&&&&&&&&&&&&//画x轴 &} &
细心的读者会发现,x轴上还有个箭头,这个是如何实现的呢,其实很简单,是由两条线段交汇而成。为方便起见,两条线段都与x轴成45°角,很容易得到表达式的方程:y=x-550,y=950-x。代码如下: for(x=740;x=750;x+=1) &{ &&&&&g.drawString("•",x,x-550);&&//x轴上方斜线 &&&&&g.drawString("•",x,950-x);&&//x轴下方斜线 &} &
(3)画y轴
参考上面x轴的绘制,很容易画出y轴,代码如下://y轴 &for(y=0;x=385;y+=1) &{ &&&&&g.drawString("•",360,y);&&&&&&&&//画y轴 &} &//y轴箭头 &for(x=360;x=370;x+=1) &{ &&&&&g.drawString("•",x-10,375-x); &&&&&g.drawString("•",x,x-355); &} &
(4)画cox(x)曲线
图形的主体是cox(x)曲线,从图1.6中可以看出,这条余弦曲线有两个周期,我们可以把x坐标控制在0~720。cox(x)返回的结果小于1,为了看到图1.6效果,必须进行放大处理,这里放大了80倍,同时把图形向下平移了200个像素。代码如下:
//两个周期,即4Л &for(x=0;x=720;x+=1) &{ &&&&&a=Math.cos(x*Math.&PI/180); &&&&&y=(int)(200+80*a);&&&&&&&&&&//放大80倍并向下平移200个像素 &&&&&g.drawString("•",x,y); &} &
【责任编辑: TEL:(010)】
关于&&的更多文章
本书全面讲解WPF的实际工作原理,是一本WPF权威著作。在紧贴实用
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
SDN(Software Defined Networking,软件定义网络)是
Web 2.0技术对传统界面设计的创新和变革,直接影响着
每天,Google都要测试和发布数百万个源文件、亿万行的
本书全面深入地介绍网络安全的配置与实现技术,包括系统管理、用户账户、病毒防御、灾难恢复、文件备份、安全策略、注册表等服务
51CTO旗下网站

我要回帖

更多关于 正弦曲线和余弦曲线 的文章

 

随机推荐