设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3406|回复: 13
打印 上一主题 下一主题

[已经过期] 三角函数计算功能问题

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

跳转到指定楼层
1
发表于 2013-12-10 15:14:24 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x

  1.   def sin # 正弦函数
  2.     s=0.000290888#sin1'
  3.     c=0.999854545#cos1'
  4.     s1=0.000290888#sin1'
  5.     c1=0.999854545#cos1'
  6.     for i in 2..self
  7.       s*=c1
  8.       s+=c*s1
  9.       c=(1-s**2)**0.5
  10.     end
  11.     num=s
  12.   end
  13.   def cos # 余弦函数
  14.     s=0.000290888#sin1'
  15.     c=0.999854545#cos1'
  16.     s1=0.000290888#sin1'
  17.     c1=0.999854545#cos1'
  18.     for i in 2..self+1
  19.       s*=c1
  20.       s+=c*s1
  21.       c=(1-s**2)**0.5
  22.     end
  23.     num=c
  24.   end
  25.   def tan # 正切函数
  26.     s=0.000290888#sin1'
  27.     c=0.999854545#cos1'
  28.     s1=0.000290888#sin1'
  29.     c1=0.999854545#cos1'
  30.     for i in 2..self
  31.       s*=c1
  32.       s+=c*s1
  33.       c=(1-s**2)**0.5
  34.     end
  35.     c=(1-(s*c1+c*s1)**2)**0.5
  36.     t=s/c
  37.     num=t
  38.   end
复制代码
算sin30度、cos60度算出来的不是0.5···而且算不出1,算出负数就崩溃···求解原因···

点评

c = 0.999999957692025  发表于 2013-12-14 19:54
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

14
 楼主| 发表于 2013-12-29 13:08:31 | 只看该作者
fux2 发表于 2013-12-29 09:24
chd巨巨你数学咋学的……弧度角度互相转啊。
但不建议用Math库的常量PI,吉拔疼,网上找一个吧。 ...

其实我的意思是···难道只能用弧度算吗···我再加个插件把角度换算成弧度的话还算得走吗···比如38.3333333333°之类的···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
41150
在线时间
7572 小时
注册时间
2009-7-6
帖子
13499

开拓者贵宾

13
发表于 2013-12-29 09:24:13 | 只看该作者
chd114 发表于 2013-12-29 08:50
是只能算弧度?那38.5之类的角度怎么办···

chd巨巨你数学咋学的……弧度角度互相转啊。
但不建议用Math库的常量PI,吉拔疼,网上找一个吧。

点评

提到数学···我只能说我是高一文科···弧度只学了一点点皮毛···  发表于 2013-12-29 13:11
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

12
 楼主| 发表于 2013-12-29 08:50:06 | 只看该作者
fux2 发表于 2013-12-29 08:40
没记错的话ruby里的Math都是算弧度的,你想算Cos60大概只能用

是只能算弧度?那38.5之类的角度怎么办···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
41150
在线时间
7572 小时
注册时间
2009-7-6
帖子
13499

开拓者贵宾

11
发表于 2013-12-29 08:40:07 | 只看该作者
没记错的话ruby里的Math都是算弧度的,你想算Cos60大概只能用
  1. p Math.cos(Math::PI/3)
复制代码
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

10
 楼主| 发表于 2013-12-29 00:33:51 | 只看该作者
晴兰 发表于 2013-12-14 19:44
不管你是抄错还是写错还是上传错还是记错。
你的初值s*s + c*c 就不等于1。而且偏差不小。这是你30度得不到 ...

那就要用的脚本是
  1. p 1/2.cos
复制代码
才是90度?
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

9
 楼主| 发表于 2013-12-28 20:01:48 | 只看该作者
晴兰 发表于 2013-12-11 14:12
算不准的原因是。。你的cos1分的值写错了。。。(是不是忘记开根号了)

另外给一个实现:

闹心的事情又来了的说···
  1. p 30.cos→0.154251449887585
  2. p 60.cos→-0.952142980415156
  3. p 3600.cos→0.965045075851604
复制代码
就是这样···用了你的脚本去掉原来的脚本后的情况···

点评

我给的是弧度。。你带入的是角度  发表于 2013-12-29 00:09
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

8
 楼主| 发表于 2013-12-14 20:00:44 | 只看该作者
晴兰 发表于 2013-12-14 19:44
不管你是抄错还是写错还是上传错还是记错。
你的初值s*s + c*c 就不等于1。而且偏差不小。这是你30度得不到 ...
  1. irb(main):108:0> (0..1000).map{|x|
复制代码
这行也出错是什么情况```

点评

说实话。。这行不是回答你问题的。。。出错就出错吧  发表于 2013-12-14 20:01
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

7
发表于 2013-12-14 19:44:40 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

6
 楼主| 发表于 2013-12-14 18:20:54 | 只看该作者
晴兰 发表于 2013-12-11 14:12
算不准的原因是。。你的cos1分的值写错了。。。(是不是忘记开根号了)

另外给一个实现:

我是按照数学书上的那个程序设计思路弄得```应该没错吧```开根号不就等于**0.5吗```

点评

你初值抄错了  发表于 2013-12-14 18:41
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-30 12:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表