让鱼跟着鼠标动起来

我们来看看原理图,注意一下,鱼头是向左的。

鼠标x - 鱼儿 x 等于 边 a 的长度,同样 鼠标y - 鱼儿 y 等于 边 b 的长度。

根据 边 b边 a 我们可以通过 Math.atan2 算出鱼与鼠标所成的角度。

知道角度之后,我们旋转这个角度就是了,但是我们会发现,是鱼尾巴在跟着鼠标跑,这就很尴尬了。

这个时候我们应该旋转一个 180 度,而对应的数值就是 Math.PI

  • 同样我们要添加一个对于角度的缓冲的函数

在我们的 utils.ts 文件里面添加

原理跟前面的一样,只不过多了2行对于角度旋转优化的代码。

当你完成之后,你可以注释这俩行看一看,当你鼠标在快速画圈圈的时候,鱼儿旋转方向会异常。

  • 添加角度属性与设置旋转

到此你的鱼儿应该会按着你鼠标的方向旋转了,这些跟数学相关的算法,其实我是拒绝的,我相信大家也是拒绝的,但是,要是人人看一眼就懂的,怎能形成自身核心竞争力呢?

其实这些跟图形算法有关,感兴趣的可以自己深究下去,从学习 C++ 开始,然后去学习了解下 OpenCV,当然学之前你可能需要恶补数学知识了。

Last updated