有没有人有过使用Pixi绘制空心圆的经验?我目前的方法只适用于WebGL渲染器,这让我觉得它有缺陷,而且我还需要回退到为其他设备渲染的另一个。
this.mathPiDub = 2 * Math.PI;
this.color = 0xFF00FF
var nuRad = 10;
this.pixiCircle.beginFill(this.color, 1);
this.pixiCircle.arc(0, 0, nuRad - 2, 0, this.mathPiDub, false);
this.pixiCircle.arc(0, 0, nuRad, 0, this.mathPiDub, false);
this.pixiCircle.endFill();
2D渲染为我提供了一个完整的圆圈,而WebGL则切入了这个洞。
最好的方法是什么?
答案 0 :(得分:6)
最简单的方法是使用内置drawCircle()
和lineStyle
代替填充。
this.pixiCircle = new PIXI.Graphics();
this.pixiCircle.lineStyle(2, 0xFF00FF); //(thickness, color)
this.pixiCircle.drawCircle(0, 0, 10); //(x,y,radius)
this.pixiCircle.endFill();
stage.addChild(this.pixiCircle);
这适用于WebGL和Canvas渲染器
答案 1 :(得分:0)
如果您使用的是版本5,则可以使用beginHole()
和endHole()
方法:
function createHollowCircle(radius, x_coordinate, y_coordinate) {
let circle = new Graphics();
circle.beginFill(color);
circle.drawCircle(0, 0, radius);
circle.beginHole();
circle.drawCircle(0, 0, radius - 0.1);
circle.endHole();
circle.endFill();
circle.x = x_coordinate;
circle.y = y_coordinate;
return circle;
}