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

Project1

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

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

[复制链接]

Lv4.逐梦者

梦石
0
星屑
6865
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

跳转到指定楼层
1
发表于 2012-4-11 15:21:39 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 后知后觉 于 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 后知后觉([email protected])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

复制代码











你知道得太多了

Lv4.逐梦者

梦石
0
星屑
6865
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

3
 楼主| 发表于 2012-4-12 01:21:48 | 只看该作者
end55rpg 发表于 2012-4-11 21:55
请问你图是否用的bitmap里的描绘?

Bitmap 的 set_pixel

点评

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











你知道得太多了

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
690
在线时间
791 小时
注册时间
2011-10-20
帖子
2394

开拓者

2
发表于 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]
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-2 07:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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