我正在制作动画,我需要让这架飞机沿着给定的路径前进,并且看起来像是在“绕地球”盘旋。 Here is the codePen,你可以看到它非常简单。
我的问题在于角度,我试图通过计算两个点的斜率并将其转换为度数,在旋转路径时我应该旋转多少。
即使我已经添加了一个epsilon来安全检查各点之间的一致差异以及其他所有安全检查,但是当它接近+ -90度时,它会改变符号,而不是传递到另一个象限120度等
我可以理解这是由
引起的您可以在中间点的控制台中看到这种情况(显示:$('#editAvailability').html('<%= escape_javascript(render :partial => 'editForm') %>');
)。
为了解决这个问题,我使用@availability
作为参数重复<%= simple_form_for @availability, method: :put, remote: true do |f| %>
...
。它以正确的值(CodePen here)开始。但它仍然是一个时髦的轮换。
这是代码(我没有发布SVG图像,因为它非常大):
JS
slope, arctangent, degrees
你能帮帮我吗,谢谢你
答案 0 :(得分:3)
我不确定你所追求的全部效果,如果它纯粹的2d角度,Snap已经内置了(沿点线返回角度),所以不需要太努力...... < / p>
element.getPointAtLength()返回角度alpha,因此可以使用movePoint.alpha ......
下面的相关行,以及其他计算行已删除。
Test