查看: 2729|回复: 2

[通用发布] 抛物线轨迹函数

[复制链接]
梦石
0
星屑
7095
在线时间
1666 小时
注册时间
2008-10-29
回帖
6612

贵宾

发表于 2012-4-11 15:21:39 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 后知后觉 于 2012-4-11 15:33 编辑

也不知道 Ruby 的 Math 有没有这东西.自己做了一个...
这个东西可以用来计算某些东西的移动轨迹.
比如某人投掷了一枚手榴弹.
然后那手榴弹在天空中划出一条漂亮的抛物线.
至于要怎么具体应用到实处.那就是使用者自己的事了.

在线测试地址:

  http://x.66rpg.com/game.php?id=52

按一下键盘的 A 键后方向键可移动 A 点
按一下键盘的 S 键后方向键可移动 B 点
按一下键盘的 D 键后方向键可移动 C 点
默认是移动 C 点

调用方法:

  HzhjMath.parabola(x1, y1, x2, y2, x3, y3, x = nil)
    若给定 x 函数则返回 y
    若省略 x 函数则返回 a,b,c

  HzhjMath.parabola_y(x, a, b, c)
    求得 y 值

使用时要注意要确保 x1≠x2≠x3

代码如下:

  1. #==============================================================================
  2. # ■ 抛物线函数 by 后知后觉(hzhj.tnt@163.com)2012-4-11
  3. #==============================================================================

  4. module HzhjMath
  5.   def self.parabola(x1, y1, x2, y2, x3, y3, x = nil)
  6.     x1 = x1.to_f; y1 = y1.to_f
  7.     x2 = x2.to_f; y2 = y2.to_f
  8.     x3 = x3.to_f; y3 = y3.to_f
  9.     x1p = x1 * x1
  10.     x2p = x2 * x2
  11.     x3p = x3 * x3
  12.     a = ((y1-y2)*(x1-x3)-(y1-y3)*(x1-x2)) / ((x1p-x2p)*(x1-x3)-(x1p-x3p)*(x1-x2))
  13.     b = ((y1-y2) - (x1p-x2p)*a) / (x1-x2)
  14.     c = y1 - a * x1p - b * x1
  15.     return a,b,c unless x
  16.     return parabola_y(x, a, b, c)
  17.   end
  18.   def self.parabola_y(x, a, b, c)
  19.     y = a * x * x + b * x + c
  20.     return y.round
  21.   end
  22. end

复制代码











你知道得太多了

梦石
0
星屑
7095
在线时间
1666 小时
注册时间
2008-10-29
回帖
6612

贵宾

 楼主| 发表于 2012-4-12 01:21:48 | 显示全部楼层
end55rpg 发表于 2012-4-11 21:55
请问你图是否用的bitmap里的描绘?

Bitmap 的 set_pixel

点评

果然,还好线不粗  发表于 2012-4-12 01:23











你知道得太多了

回复

使用道具 举报

梦石
0
星屑
752
在线时间
800 小时
注册时间
2011-10-20
回帖
2257

开拓者

发表于 2012-4-11 21:55:20 | 显示全部楼层
请问你图是否用的bitmap里的描绘?
欢迎点此进入我的egames.wink.ws,有RMQQ堂等

[url=http://rpg.blue/thread-317273-1-1.html]短篇八-赶选

http://yun.baidu.com/share/link?shareid=2158225779&uk=169642147&third=0


历险?ARPG?赢回你的疆域?新的战斗模式?…………点击这里:[宋乱贼狂 for QQ堂]
http://rpg.blue/group-368-1.html
programing ....?
[url=http://rpg.blue/thrd-234658-1-1.html]
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部