Javascript 如何在圆周围移动元素

Javascript 如何在圆周围移动元素,javascript,svg,Javascript,Svg,我是新来的;]。如何计算.loader标记元素上矩阵()中的translateX和translateY位置。我有角度,它可能是0,60,120,180,240,300,360度。装载机标记器应该围绕最大的圆圈滚动并标记数字。我可以根据角度计算倾斜和缩放,但我找不到一种方法来计算平移(XY)位置,因此我有。下面是代码示例 var-loadedAngel=60; var angelRadians=60*(数学PI/180); var半径=178; var-cx=260; var-cy=264; v

我是新来的;]。如何计算.loader标记元素上矩阵()中的translateX和translateY位置。我有角度,它可能是0,60,120,180,240,300,360度。装载机标记器应该围绕最大的圆圈滚动并标记数字。我可以根据角度计算倾斜和缩放,但我找不到一种方法来计算平移(XY)位置,因此我有。下面是代码示例

var-loadedAngel=60;
var angelRadians=60*(数学PI/180);
var半径=178;
var-cx=260;
var-cy=264;
var矩阵=[1,0,0,1,0,0];
var svg=document.getElementById(“box loader svg”);
var loader=document.getElementById(“路径加载器”);
var marker=document.getElementById('loader-marker');
document.getElementById(“路径加载器”).setAttribute(“d”,描述符C(cx,cy,radius,0,loadedAngel));
函数极笛卡尔坐标(centerX、centerY、半径、angleInDegrees){
var angleInRadians=(angleInDegrees-90)*Math.PI/180.0;
返回{
x:centerX+(半径*数学坐标(角半径)),
y:中心y+(半径*数学正弦(角度半径))
};
}
函数描述C(x,y,半径,星形,端角){
var起点=极笛卡尔坐标(x,y,半径,端角);
var end=极笛卡尔坐标(x,y,半径,星形);

var largeArcFlag=endAngle-startAngle您的旋转中心位于
(260,264)
。例如,您的
。装载机标记可以最初显示在图例“6”的中心位置
(260,35)
(大约):


不确定您是否知道这一点,但您可以沿路径设置SVG的动画。MDN:示例:好的,这很有趣,如果我无法找到解决方案,也许可以这样做。我将尝试这种方法。虽然我只是想知道,当平移(XY)基于圆的旋转角度和半径时,如何计算平移(XY)。为什么不使用
rotate(a,cx,cy)
?您能给我一个示例代码吗?在我的情况下,
.loader marker
将如何在第一个位置(或第一个位置)。因此圆圈应该在“第一个”上,直线应该在白色路径的末端。谢谢。
<g class="loader-marker" stroke="#fff" stroke-width="2" fill="none">
    <circle x="260" y="35" r="20" />
    <path d="M 260 55 260 90" transform="rotate(45, 260, 35)" />
</g>
var marker = document.getElementById('loader-marker');

var cx = 260,
    cy = 264,
    mx = 260,
    my = 35;

function positionMarker (number) {
    var angle = 60 * number;
    var transform = 'rotate(' + angle + ' cx cy) rotate(-' + angle + ' mx my)';
    marker.setAttribute('transform', transform);
}