我试图在Pixi.js v 4.6.2中旋转一个对象,每次设置旋转成员或调用setTransform()时,对象都会旋转,但它也会被移动。我尝试过设置枢轴点,但没有帮助。
我试过了:
compass.rotation += .5;
和
compassContainer.setTransform(0, 0, 1, 1, 0.5, 0,0, 00,00 );
和
compassContainer.rotation += 0.5;
以下是所有代码:
var app = new PIXI.Application(400, 400, { antialias: true });
document.body.appendChild(app.view);
// Render the compass
var compassContainer = new PIXI.Container();
var compass = new PIXI.Graphics();
compass.beginFill(0xFF3300);
compass.lineStyle(4, 0xffd900, 1);
compass.lineStyle(0);
compass.beginFill(0xFFFF0B, 0.5);
compass.drawCircle(200, 200, 180);
compass.endFill();
compass.lineStyle(0);
compass.beginFill(0xFFFFFF, 1);
compass.drawCircle(200, 200, 150);
compass.endFill();
compass.lineStyle(4, 0xFF0000, 1);
compass.moveTo(200, 20);
compass.lineTo(200, 40);
compassContainer.addChild(compass);
app.stage.addChild(compassContainer);
// Render the boat
var boat = new PIXI.Graphics();
boat.beginFill(0xFF3300);
boat.lineStyle(4, 0xffd900, 1);
boat.moveTo(200, 100);
boat.lineTo(175, 250);
boat.lineTo(225, 250);
boat.lineTo(200, 100);
boat.endFill();
// Add boat
app.stage.addChild(boat);
// Rotate compass
// compass.rotation += .5;
compassContainer.setTransform(0, 0, 1, 1, 0.5, 0,0, 00,00 );
// compassContainer.rotation = 0;
答案 0 :(得分:1)
我在这里有一个固定的小提琴:https://jsfiddle.net/themoonrat/cfaq34g7/
EXECUTE IMMEDIATE 'DELETE FROM dept WHERE deptno = :num' USING dept_id;
基本上,在绘制圆圈时,圆圈的定位,加上与半径相比的微小偏移,意味着中心点不在绘制图形的中间,因此“摆动”。在我的小提琴中,绘制圆圈的x和y pos现在都是180 ...与较大圆圈的半径相同
你使用枢轴的第一直觉是正确的,那个小提琴使用它。