找回密码
 点一下
查看: 6194|回复: 31

DOTA-凤凰-伊卡洛斯之击(伪)

[复制链接]
发表于 2010-12-29 22:54:44 | 显示全部楼层 |阅读模式
搞定了,结果却发现DOTA上简单地使用了匀角速度,我却自找麻烦了……
总之效果还是可以的,虽然无法将感叹号放到女巫的overhead上
phoenix.w3x (26 KB, 下载次数: 167)

未命名2.JPG

================================================分割线,代表倒叙===================================================================
一个椭圆: x^2+(y^2)/4=1
有一点从(0,-2)出发,逆时针沿着椭圆轨迹匀速移动(线速度不变!),经过2秒回到原点
求该质点运动方向θ(弧度制)关于时间t(秒)的函数,以及该点的线速度。

其实这个是我在模仿DOTA6.70新英雄技能的过程中遇到的问题。

那个技能是这样,发动后,英雄以【当前位置作为椭圆长轴一个顶点,面向方向为长轴的】椭圆飞行(椭圆长轴长1500,短轴500)。整个飞行时间为2秒,飞行的线速度为匀速。
飞行过程对碰到的单位造成伤害以及禁止普通攻击数秒。

伤害什么的没问题,就是在实现单位按照椭圆轨迹进行匀速运动这个地方遇到了苦难。求解。。。。

未命名.JPG
发表于 2010-12-29 23:12:56 | 显示全部楼层
匀的是线速度而不是角速度么……

找到个奇怪的东西……
http://hrq.1028.blog.163.com/blog/static/25328047201049847849/
回复

使用道具 举报

发表于 2010-12-29 23:16:20 | 显示全部楼层
把2秒分成100份或者200份,在每一份中,单位改变角度每次改变(360度/份数),单位向前移动相同距离,这样就是一个圆。

调整每次改变角度的数值,比如快慢慢快,就和你图中的椭圆差不多了。
回复

使用道具 举报

发表于 2010-12-30 00:54:08 | 显示全部楼层
楼主抢人家饭碗了啊
话说楼主你凤凰技能做出来几个了  我暂时除了第三个以外的全做出来了 那个弧形很别扭。。
回复

使用道具 举报

发表于 2010-12-30 04:04:37 | 显示全部楼层
目前尚无一般椭圆的精确的线积分公式,所以目前要实现匀线速度就只能采用近似的方法。
回复

使用道具 举报

发表于 2010-12-30 05:43:48 | 显示全部楼层
可以给 t' 的增量做修正... (t' 不是时间,是那堆三角函数里的参数)
当那个处于椭圆上不同的位置是,t' 的增量根据这个位置取值...

算法么... 草稿纸哩?啊好困,睡醒再看...
回复

使用道具 举报

 楼主| 发表于 2010-12-30 11:04:47 | 显示全部楼层
[quote]引用第3楼q578132428于2010-12-30 00:54发表的  :
楼主抢人家饭碗了啊
话说楼主你凤凰技能做出来几个了
回复

使用道具 举报

发表于 2010-12-30 11:22:33 | 显示全部楼层
引用楼主lghdtc于2010-12-29 22:54发表的 再次求算法 :
一个椭圆: x^2+(y^2)/4=1
有一点从(0,-2)出发,逆时针沿着椭圆轨迹匀速移动(线速度不变!),经过2秒回到原点
求该质点运动方向θ(弧度制)关于时间t(秒)的函数,以及该点的线速度。

其实这个是我在模仿DOTA6.70新英雄技能的过程中遇到的问题。
.......
质点的线速度不变则必然静止或作匀速直线运动,貌似LZ说的是速率吧?
另外,那个原点是不是指原来的出发点?
回复

使用道具 举报

 楼主| 发表于 2010-12-30 12:56:31 | 显示全部楼层
“两秒后回到原点”指的是原来的点,即出发点
我指的速度不变是特指线速度,即速度的大小不变。
回复

使用道具 举报

发表于 2010-12-30 13:18:00 | 显示全部楼层
椭圆的弧长那个要积分算出来很复杂的额……上面沙发链接里提到用CAD弄的椭圆等分弧长或许你可以试试看
回复

使用道具 举报

发表于 2010-12-30 14:23:34 | 显示全部楼层
不用积分这么复杂吧……其实可以使用角度位移,然后每次修改角度变化量就可以了。
回复

使用道具 举报

发表于 2010-12-30 15:24:12 | 显示全部楼层
lz说的是线速度固定啊,角速度固定很好做,线速度就很那啥了
回复

使用道具 举报

发表于 2010-12-30 15:35:15 | 显示全部楼层
固定速率,原理见2楼

Ellipse.w3x

17 KB, 下载次数: 27

回复

使用道具 举报

发表于 2010-12-30 15:46:33 | 显示全部楼层
圆弧逼近法?
回复

使用道具 举报

发表于 2010-12-30 16:05:04 | 显示全部楼层
名字太专业,不懂
回复

使用道具 举报

 楼主| 发表于 2010-12-30 16:12:51 | 显示全部楼层
引用第10楼希瓦于2010-12-30 14:23发表的  :
不用积分这么复杂吧……其实可以使用角度位移,然后每次修改角度变化量就可以了。
我目前这是这么算,但要求角度关于时间的导数,算了好一会儿,发现很难算…比如椭圆周长,这个是计算需要的数据,就没有初等表达式
回复

使用道具 举报

发表于 2010-12-30 16:14:52 | 显示全部楼层
引用第11楼zhuzeitou于2010-12-30 15:24发表的  :
lz说的是线速度固定啊,角速度固定很好做,线速度就很那啥了
我是指每0.01设置单位移动的角度,然后按这个角度进行固定距离的移动。
和LSS的演示的意思差不多,不过LSS的算法明显有问题~~~应该是偷懒了的缘故
回复

使用道具 举报

发表于 2010-12-30 22:11:20 | 显示全部楼层
话说我的办法是选起点个中心点 就是弧形的最长直径的两个点A和B然后以B为圆心距离B 到A的距离减去15除以C 角度为 B到A的角度加上C乘以一定值
                                                    回来就是相反的以A为圆心距离A到B的距离减去15除以C 角度为A到B的角度加上C乘以一定值  
                                                            C就是循环数1-100了。。。 很粗糙的算法 但是很实用
回复

使用道具 举报

发表于 2011-6-24 13:58:46 | 显示全部楼层
楼主好厉害啊
回复

使用道具 举报

发表于 2011-6-26 15:21:27 | 显示全部楼层
不错嘛
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-22 09:27 , Processed in 0.148041 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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