Replies: 2 comments
-
在使用 G6 的 canvas 渲染模式下,如果你想让图标自动旋转并且避免 animate 方法覆盖自身渲染的 matrix 偏移,可以尝试以下方法:
以下是一个简单的示例代码,展示如何使用 function rotateNode(node, angle) {
const matrix = node.getMatrix();
const radian = (Math.PI / 180) * angle;
const cos = Math.cos(radian);
const sin = Math.sin(radian);
// 计算旋转矩阵
const rotateMatrix = [
cos, -sin, 0,
sin, cos, 0,
0, 0, 1
];
// 应用旋转矩阵
node.setMatrix(G6.Util.mat3.multiply([], matrix, rotateMatrix));
}
function animateRotation(node) {
let angle = 0;
function animate() {
angle = (angle + 1) % 360; // 每帧增加1度
rotateNode(node, angle);
requestAnimationFrame(animate);
}
animate();
}
// 假设 node 是你要旋转的节点
animateRotation(node); 这种方法可以让你更精确地控制节点的旋转动画,同时避免 animate 方法覆盖矩阵的问题。 如果你有进一步的问题或需要更详细的帮助,请随时告诉我! 🪧 TipsFor further assistance, please describe your question in the comments and @petercat-assistant to start a conversation with me. |
Beta Was this translation helpful? Give feedback.
-
找到了一个方法,获取元素的transform,在后面拼接属性 |
Beta Was this translation helpful? Give feedback.
-
开始loading 我是使用的一个动态的svg,他在svg render模式下能够直接动起来,但是随之引来的问题是,拖动画布的过程中,会选择svg节点中的文字,体验不好。
于是就换成了canvas渲染,但是参照 shapeMap.animate方法,设置了transform,虽然可以旋转了,但是animate 会把自身渲染的matrix偏移覆盖掉,导致loading的按钮位置不对,应该怎么计算matrix,或者有更好的办法么。
Beta Was this translation helpful? Give feedback.
All reactions