Javascript 设置d3中的旋转方向

Javascript 设置d3中的旋转方向,javascript,d3.js,Javascript,D3.js,我有一个圆圈,有几个可点击的点。当我单击其中一个时,我希望它旋转到右侧(零度)位置。当我单击顶部的点(90度)时,我希望圆顺时针旋转,当我单击底部的点(270度)时,我希望它逆时针旋转。基本上,走最短的路到右边。问题是,当我单击底部点(蓝星)时,圆圈的路径最长,位于右侧。如果你再仔细研究一下,你会发现它似乎为每个点设定了一个特定的方向,不管它们在哪里,它都会遵循这个方向 请问如何控制旋转方向?任何指向这一点的建议都是值得赞赏的 功能旋转(角度){ d3.选择(“.container”) .at

我有一个圆圈,有几个可点击的点。当我单击其中一个时,我希望它旋转到右侧(零度)位置。当我单击顶部的点(90度)时,我希望圆顺时针旋转,当我单击底部的点(270度)时,我希望它逆时针旋转。基本上,走最短的路到右边。问题是,当我单击底部点(蓝星)时,圆圈的路径最长,位于右侧。如果你再仔细研究一下,你会发现它似乎为每个点设定了一个特定的方向,不管它们在哪里,它都会遵循这个方向

请问如何控制旋转方向?任何指向这一点的建议都是值得赞赏的

功能旋转(角度){
d3.选择(“.container”)
.attr('transform','rotate(${angle})`);
}
正文{
保证金:0自动;
文本对齐:居中;
填充:10px;
}
.集装箱{
变换原点:250px 250px;
过渡:所有0.5s的轻松过渡;
}
.明星{
光标:指针;
}
.星星--红色{
填充物:红色;
}
.星星--绿色{
填充:绿色;
}
.星星--蓝色{
填充物:浅蓝色;
}
.星星--粉红色{
填料:三文鱼;
}


要逆时针旋转,请使用负角度。

您不能只跟踪所需的旋转,还需要跟踪整个旋转。例如,如果您一直单击顶部的任何一颗星,则继续运行所需的度数将变为,
[0、90、180、270、360、450,]
。跟踪总旋转后,只需确定如下所示的增量方向

var totAngle=0;
函数旋转(角度){
d3.选择(“.container”)
.attr('transform',()=>{
//将当前旋转钳制为0-360
var minAngle=((总角度%360)+360)%360;
//计算所需的旋转0/90/180/270
var rot=(角度-minAngle+360)%360;
//确定顺时针/逆时针方向

totAngle+=rot你试过-90度吗?@magjac是的,当蓝星在顶部时,使
星蓝色--
-90度不起作用。它逆时针旋转,而不是顺时针旋转。你问过如何控制旋转方向,而不是如何修复代码。别忘了感谢@Andrew为你这么做。@magjac不需要居高临下,我自己也不完全理解这个问题,这就是问题的关键所在。如果你不想修复我的代码,你所要做的就是解释我必须做的事情,我会非常高兴地告诉你。你完全正确。这是不必要的。我道歉。如果你描述了你已经拥有的,我可以更快地帮助你尽管尝试过。非常感谢你帮助我理解这个问题!投票结果是正确的,因为它回答了标题。很明显,我问的是我认为解决方案是什么,而不是说明问题。