Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 软件时空 > 工具软件 > 淺談sin和cos
【标  题】:淺談sin和cos
【关键字】:c,in,cos,sin
【来  源】:网络

淺談sin和cos

Your Ad Here sin和cos的功能可以定義出一個圓形, 例如一個圓的半徑為1, 中心點為(0,0)



按此在新窗口浏览图片

t是弧長, 進行的時候是從右邊開始向順時針方向.... 那麼使用cos(t)和sin(t)就能夠得到該x和y的座標了
還有几點要注意的

1. t的部份會一直以圓圈的方式進行延長, 所以一直使用sin和cos就會一直得到座標值

2. cos和sin的值必定是在 1 和 -1 之間

3. t上的任何一點, 使用sin和cos計算所得到的距離必定是圓的半徑

4. 一個circumference(中文應該是叫圓周) 是 2 * Math.PI


那麼順便說說radian, 2 * Math.PI radian就是一個圓, 即360度
把角度換成radian的方法是乘上 (2 * Math.PI) / 360 或是 Math.PI/180
把radian換成角度的方法是乘上 360 / (2 * Math.PI) 或是 180/Math.PI

按此在新窗口浏览图片


如上圖, 把y當成b... x當成a, 而斜線當做是c. 那麼:
sin = b/c
cos = a/c
tan = b/a

而 y/x = -y/-x 和 y/-x = -y/x, atan(y/x)都會回傳相同的值且在上圖的陰影部份...
但是要記得當x為0的時候, 不要使用atan, 因為會出現錯誤


最後說一說怎麼計算出弧度上的x和y值, 例如現在知道一個角度為 40
那麼sin和cos需要radians來做計算... 因此就把角度換成radians, 然後乘上半徑

radians = 40 * (Math.PI/180);
xPos = 半徑 * Math.cos(radians);
yPos = 半徑 * Math.sin(radians);

這樣雖然已經計算出弧度上的座標, 但我們還要定義出中心點, 例如中心點為 (100,100)
那麼 :
x = xPos + 100;
y = yPos + 100;

那麼接下來就實現這個例子吧....

步驟1 : 在場景上建立一個小圓, 轉換成元件MC, 實體名叫mc

步驟2 : 在第一幀寫上

var radians = degree = 0;          //弧度和角度的初始值, MX 2004必需先定義
var xPos = yPos = 0;          //初始弧度上的座標xPos和yPos
var radius = 100;          //設定半徑為100
var xcenter = ycenter = 200;          //中心座標為(200, 200)

onEnterFrame = function() {
   radians = degree * (Math.PI/180);
   xPos = radius * Math.cos(radians);
   yPos = radius * Math.sin(radians);
   
   mc._x = xcenter + xPos;
   mc._y = ycenter + yPos;
   degree += 5;       //計算出座標之後角度增加5, 下次循環的時候計算出新的座標
}

步驟3 : 測試 & 例子 :)

点这里下载源文件

以上的簡單介紹和例子是提供給那些新手參考, 還請各位有經驗的高手在此篇之後繼續多貼一些簡單的應用例子
因為sin, cos等的用法還不只這一點....
函数封装-简述:【上一篇】
全力打造超级可扩展Menubar:【下一篇】
【相关文章】
  • EventDispatcher代码分析
  • 鬼火loading完全手册
  • 使用setInterval函数
  • ActionScript循序渐进 五、目标路径
  • 通过鼠标特效认识FLASH5的Action(上)
  • 获取音乐数据流制作随数据流变化的MC
  • 用asfunction创建交互
  • 路径,包与#include小结
  • ActionScript循序渐进 三语句流程
  • 3D Matrix Class
  • 【随机文章】
  • 怀旧与创新-口袋妖怪绿宝石发售有感
  • Q3源码阅读2
  • 网络故障问题
  • 电信的星空极速客户端软件强制安装策略升级了
  • 动态存储管理
  • Fireworks MX 制作羽毛效果教程
  • 控件基类和页面基类冲突
  • 在DataGrid中,使鼠标到达的行和列显示不同的颜色
  • CTDP linux 程序员手册 C和C++编程(11)Viewmod程序
  • 如何在Linux下用C/C++语言操作数据库sqlite3
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.