选择最短的旋转来排列两个图像
Choosing the shortest rotation to line up two images
我已经为这个问题挣扎了一段时间,尽管一开始看起来并不难。
基本上,我在屏幕上有一个由javascript动态旋转的三角形。在动画的每一帧中,三角形都会尝试在"正确的方向"上旋转1度,这样它的尖端就会指向屏幕上的另一个div,我可以用箭头键四处移动。这个三角形有以下css属性
#triangle {
position: absolute;
left: x;
top: y;
-webkit-transform: rotate(degrees)
}
我可以很好地使三角形的点遵循div,只是我不知道如何使点总是采用最短的旋转。有时它会朝着"错误"的方向旋转355度,而不是朝着正确的方向旋转5度。
我有点被卡住了。有人能帮我解决这个问题吗?
谢谢!
我会尝试这样的东西:
function optimal_angle(degrees) {
degrees = degrees % 360;
if (degrees > 180) {
return degrees - 360;
} else {
return degrees;
}
}
还有一些测试:
> optimal_angle(355);
-5
> optimal_angle(-5);
-5
> optimal_angle(124373984);
104
如果你仔细想想,你在任何方向上最多能转180度。因此,为了"优化"一个角度,你可以去除重复的转数(degrees % 360
),如果角度超过180度,你可以转向另一个方向。
相关文章:
- 单击时切换两个图像
- 一个具有两个图像按钮的表单在只能按下一个按钮的情况下发送两个按钮值
- 如何使用 jQuery 交换网页中的两个图像(连续两次点击)
- 选择最短的旋转来排列两个图像
- 在jQuery中创建两个图像之间的行
- 将两个图像合并为一个,并使用javascript进行溢出隐藏
- 淡入淡出两个图像[JavaScript]
- 单击按钮时交换两个图像
- 可以在Javascript中比较两个图像
- 如何保存带有两个图像的画布
- 如何查看两个图像源是否相等
- 如何在两个图像之间添加空间
- CSS/Javascript/Jquery:显示/隐藏 DIV 取决于单击的两个图像之一
- 如何在 javascript 中检测两个图像之间的冲突
- 响应式设计:这个Javascript会导致浏览器下载两个图像吗?
- 比较两个图像的相等性(跨域)
- 单击时并排显示两个图像的按钮
- 如何使用 HTML 或 CSS 或 JS 重叠两个图像并在两者之间划一条交叉线,如以下示例所示
- 下拉框更改两个图像
- 枚举内容滑块一次显示两个图像