【编程】余 弦 曲 线
1.问题描述
在屏幕上画出余弦函数cos(x)曲线,如图1.6所示。
2.问题分析
连续的曲线是由点组成的,点与点之间距离比较近,看上去就是曲线了,画图的关键是画出每个点。Java提供了三角函数方法,直接调用cos()方法就可以根据x坐标计算出y坐标。需要注意的是,cos()方法输入的参数是弧度值,要进行坐标转换,同样,得到的结果也要进行转换处理。从图1.6中可以看出,这条余弦曲线有两个周期,我们可以把x坐标控制在0~720。
(1)确定程序框架
从图1.6中,我们可以发现,整个图形包括x轴、y轴及余弦曲线。控制台不方便输出图形,这里以Applet形式输出。这样我们就可以写出程序框架了,代码如下:
public class Cos1 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);
(5)完整程序
现在我们就需要把刚才的程序进行组合,构成我们的完整程序:
import java.applet.*;
import java.awt.*;public class Cos1 extends Applet
{int x,y;public void start() {//画画之前,必须先取得画笔Graphics g=getGraphics();//画x轴、y轴for(x=0;x<=750;x+=1){g.drawString("·",x,200);if(x<=385) g.drawString("·",360,x);}g.drawString("Y",330,20);//画y轴箭头for(x=360;x<=370;x+=1){g.drawString("·",x-10,375-x);g.drawString("·",x,x-355);}//画x轴箭头g.drawString("X",735,230);for(x=740;x<=750;x+=1){g.drawString("·",x,x-550);g.drawString("·",x,950-x);}//画cox()曲线for(x=0;x<=720;x+=1){double a=Math.cos(x*Math. PI/180+Math.PI);y=(int)(200+80*a); //放大80倍并向下平移200个像素g.drawString("·",x,y);}}
}
【编程】余 弦 曲 线相关推荐
- PHP编程第八期线上培训班课程
教程介绍 PHP编程第八期线上培训班课程涵盖PHP及其周边主要技术,web网站建设,微信小程序开发等可以轻松应对!汇总出最实用的PHP技术,学完之后,可以快速融入企业开发环境中.适合没有Web开发基础 ...
- 弦截法c语言求方程XeX-1=0的解,编程用弦截法求方程 f(x)=3x^3-5x^2+16x-60=0的根
满意答案 w6297281 2013.08.26 采纳率:52% 等级:12 已帮助:8785人 希望下面的资料对你有帮助: 弦截法求方程的根是一种解方程得基本方法,在计算机编程中常用.他的思路 ...
- python编程培训多少钱-线下python培训要多少钱?
Python语言相对简单,对于初学者非常友好,可以让初学者专注于编程逻辑,而不会被晦涩的语法细节困扰.相较于其他编程语言来说,学习python拥有更多岗位发展选择.那么,线下python培训要多少钱? ...
- CSDN挑战编程——《金色十月线上编程比赛第二题:解密》
金色十月线上编程比赛第二题:解密 题目详情: 小强是一名学生, 同时他也是一个黑客. 考试结束后不久,他惊讶的发现自己的高等数学科目居然挂了,于是他果断入侵了学校教务部网站.在入侵的过程中,他发现了与 ...
- CSDN挑战编程——《金色十月线上编程比赛第一题:小女孩数数》
金色十月线上编程比赛第一题:小女孩数数 题目详情: [金色十月线上编程比赛规则] 一个小女孩正在用左手手指数数,从1数到n.她从拇指算作1开始数起,然后,食指为2,中指为3,无名指为4,小指为5.接下 ...
- 山大青岛计算机学院郑雯,山东大学自招700余人过线 面试将刷掉20%考生
前天下午5点至昨天凌晨,"北约""华约""卓越"准时开通了自主招生成绩查询入口,发布了2014年自主招生笔试结果.首次将省内外考生同时纳入& ...
- 二手车数据分析-爬取人人车二十余万条线上二手车数据
我国汽车保有量近年来持续高速增长,二手车交易也正蓬勃发展,涌现出瓜子.优信.人人车,等大量二手车交易网站. 这次就通过在线抓取人人车发布的线上二手车数据,对目前二手车的交易情况进行分析. 使用工具: ...
- C 语言编程 — 线程安全与线程非安全
目录 文章目录 目录 线程安全与线程非安全 C 语言的线程非安全函数(不可重入函数) Linux 的共享内存 线程安全与线程非安全 多线程程序中,线程安全是必须要考虑的因素. 线程安全(Thread ...
- 机械原理c语言程序,c语言机械原理编程,连杆运动分析图线.docx
编程大作业 基于 C 语言的机械原理分析图: 只有库函数包含头文件:graphics.h conio.h 才能观看该程序效果: 若已经安装 VC++,可以打开文件夹里面的 EasyX压缩包, 并安装 ...
最新文章
- Trends Genet | 王关红和Jackson Champer综述共生菌和基因驱动技术防控蚊媒疾病
- f2 柱状图滚动 钉钉小程序_钉钉小程序图表库AntV - F2 使用总结
- 秋招面经来了,收藏!
- Spark在集群中的安装
- JavaScript 函数声明,函数表达式,匿名函数,立即执行函数之区别
- SAP系统中发送消息的几种办法
- 构建之法 阅读笔记01
- nginx mysql设置远程连接超时_nginx中的超时设置
- java模拟Digest.认证
- 刘歧:让人生不留遗憾
- Android WebView https白屏、Http和Https混合问题、证书配置和使用
- python中的OrderedDict
- excel如何把顺序倒过来_如何在筛选后的表里复制粘贴数据到同行
- Java面试题视频讲解汇总,持续更新中...
- 品质管控计划ppt怎样写_供应商质量管理工作计划.ppt
- 虚拟机自省XenAccess和vmitools
- 短线起爆点(移动均线15种战法)
- SDHC卡写单块和读单块
- PyMOL免费下载及安装教程【Win版】
- MySQL版本号后面包含“-log”代表什么意思?
热门文章
- Oracle 性能优化之AWR、ASH和ADDM(含报告生成和参数解读)
- JAVA和C语言有啥区别?是选择学习JAVA还是C?
- 程序员常用DOS命令
- [nginx]解决无root权限运行mginx问题
- 《谁说菜鸟不会数据分析》学习笔记 第五章数据分析
- 白平衡,颜色校正,颜色映射When Color Constancy Goes Wrong, brown
- 【效果展示】面部追踪+情绪识别
- java dispose null_java – 为什么在调用setVisible(false)和dispose...
- JavaScript正则表达式 RegExp验证手机号码
- 高考16个突发事件处理方法大全,一定会需要!