如何在不旋转图像的情况下以圆形移动图像
How to move an image in a circular motion without rotating it?
我需要在我的网站上有一个太阳图像和月亮图像,这两个图像在一天的大部分时间里都是隐藏的,但当它们显示的时候,它们将从左到右进行圆周运动。
我有一段代码,上面写着白天或晚上要实现的百分比,我只需要知道如何在不旋转图像的情况下以圆周运动的方式移动图像。
css部分:
- 将css位置设置为绝对
- 根据三角法设置x和y坐标(css顶部和左侧)
三角测量:
基本上你想绕半个圆,圆周率为0%,零度为100%,所以这就像得到圆坐标(即x=中心+半径*cos(角度)),但唯一复杂的部分是你需要反转角度:pi*(1%)
var centerX = document.body.offsetWidth / 2; // center of screen
var centerY = document.body.offsetHeight / 2;
var radiusX = document.body.offsetWidth / 3; // radius 1/3 screen
var radiusY = document.body.offsetHeight / 3;
var angle = Math.PI * (1-percent);
var x = centerX + radiusX * Math.cos(angle);
var y = centerY + radiusY * Math.sin(angle);
好的。
我刚刚为自己计算出了圆周运动,它非常简单。你可以取一个半径、一个角度和一些简单的数学来确定某个物体的位置。所以…
var body = document.getElementsByTagName("body")[0],
radius = 100, // Some radius here
max = 50; // max number of generations we want (half a circle)
for (var i = 1; i <= max * 2; i++) {
var div = document.createElement("div"),
angle = Math.PI * (i / max);
div.style.backgroundColor = "#000";
div.style.borderRadius = div.style.height = div.style.width = "8px";
div.style.left = ((Math.sin(angle) * radius) + radius) + "px";
div.style.position = "absolute";
div.style.top = ((Math.cos(angle) * radius) + radius) + "px";
body.appendChild(div);
}
你应该得到一个完整的圆圈。只要根据需要重新构建数学,你就可以开始了。
相关文章:
- 如何阻止图像移动并根据击键进行操作
- Photoshop脚本:将图像移动到位置x,y
- 使大图像移动的jQuery动画更流畅
- 如何通过按住键而不是重复按下来使图像移动
- 织物.js:将剪切的图像移动到固定的剪切蒙版后面
- 灯箱将图像移动到右下角
- 到达容器边界时停止图像移动
- HTML5画布图像移动闪烁
- 如何在修改后将堆叠的图像移动到另一页
- 垂直滚动鼠标时图像移动
- 旋转木马图像移动到不正确的地方点击事件
- 如何在用户滚动页面时触发图像移动
- 为什么我的代码在布朗运动下旋转针图像移动针的位置?为什么原点的图像是分散的?
- JavaScript在使用DOCTYPE时失去图像移动功能
- 如何使用低分辨率的图像移动
- 将图像移动到鼠标的位置
- 如何使用Javascript点击按钮使图像移动
- 将图像移动到指定的最小值
- 如何让标题随着图像移动
- 使JavaScript图像移动时滚动更平滑