沿圆的半径标准化值

时间:2016-11-15 11:05:31

标签: javascript trigonometry

我正在尝试实现cs.kenji-special.info上显示的拖动/进度效果

基本上,我在页面中输出N个div并水平移动它们。我想跟踪您滚动的进度并将其显示在后面的圆圈上。我想象我应该跟踪viewPort的中心和第一个项目的X位置之间的距离..

我有完整的元素'宽度,但经过无数次迭代,我仍然无法达到效果......

enter image description here

任何帮助都会受到更多的赞赏。

1 个答案:

答案 0 :(得分:1)

不知道我是否完全接受了你的问题,但你可以通过取值范围并对2 * PI辐射进行归一化来表示一个值的圆点,即(以某种伪代码形式):

dv = 2PI/(Max-Min);
currantAngle = (currentValue-Min)*dv;
currentPointX = centerX+radius*cos(currentAngle)
currentPointY = centerY+radius*sin(currentAngle)

如果您的值为零,则更简单:

dv = 2PI/(Max);
currantAngle = (currentValue)*dv;
currentPointX = centerX+radius*cos(currentAngle)
currentPointY = centerY+radius*sin(currentAngle)

这个代码点从第一个象限开始并逆时针移动,你可以通过偏移角度和改变标志来向相反的方向移动,但我想这是让你开始。