【发布时间】:2020-10-08 21:17:54
【问题描述】:
您好,我正在为我的网站使用 javascript 库。库使用 webgl 生成动画。所以它在元素内部创建了一个画布并显示动画。但我希望那个动画看起来像一个甜甜圈。我已经在画布元素上设置了 50% 的边框半径,它会生成一个圆圈,但我需要在画布内切割另一个透明圆圈。这是我想要实现的图像。
我已经尝试过操作 html 元素,但到目前为止还没有成功。由于画布后面的背景图像,我也不能使用重叠元素。
接下来我尝试的是覆盖库函数,但我从未在 webgl 中做过任何事情,所以它很糟糕。我添加了另一种在动画更新后应用的方法。我在画布内切了一个正方形,但圆形没有成功。有没有简单的方法,如何在 webgl 中切割一个圆圈,我可以在我的 drawEmptyCircle 方法中放置,而无需在库中进行任何复杂的编辑?
drawEmptyCircle: function(){
gl.enable(gl.SCISSOR_TEST);
gl.scissor(150, 150, 200, 200);
gl.clearColor(0, 0, 0, 0);
gl.clear(gl.COLOR_BUFFER_BIT);
gl.disable(gl.SCISSOR_TEST);
},
这里是fiddle
【问题讨论】:
-
没有图书馆,很难帮你。您能否链接到您正在使用的库,或者更好的是,将您的代码放在 stack-sn-p 中以便我们可以对其进行实时测试?
-
确定这是一个库sirxemic.github.io/jquery.ripples,我会做一个小提琴演示
-
演示正在运行。
标签: javascript html5-canvas webgl