Javascript 在画布html5中添加自定义动画

Javascript 在画布html5中添加自定义动画,javascript,animation,html5-canvas,Javascript,Animation,Html5 Canvas,这可能有点困难,但我还是会问,所以我做了一个星域,现在我想做的是让我的星(每一对)通过一条线相互连接,现在,这条线将随着星星的移动而扩展,当星星离开画布时,这条线将消失。任何帮助都将在这里得到感谢。这很困难,我有逻辑,但我似乎无法遵循正确的方法来实现它 函数随机范围(最小值,最大值){ 返回Math.floor(Math.random()*(maxVal-minVal-1))+minVal; } 函数initStars(){ 对于(变量i=0;i

这可能有点困难,但我还是会问,所以我做了一个星域,现在我想做的是让我的星(每一对)通过一条线相互连接,现在,这条线将随着星星的移动而扩展,当星星离开画布时,这条线将消失。任何帮助都将在这里得到感谢。这很困难,我有逻辑,但我似乎无法遵循正确的方法来实现它

函数随机范围(最小值,最大值){
返回Math.floor(Math.random()*(maxVal-minVal-1))+minVal;
}
函数initStars(){
对于(变量i=0;i如果(stars[i].z=0&&px=0&&py你可以说你想要一个光速效果

一种非常便宜的方法是用一些透明度来绘制背景。你也可以渲染一组靠近的点来产生效果的错觉

这样做的好方法是使用着色器,因为它们可以让您添加光晕和其他一些不错的图像技巧,从而使其看起来更好。下面是一个很好的示例:

下面我使用了canvas api
lineTo
,即使使用固定的线宽,这也是一个非常好的最终结果

var MAX_DEPTH=64;
var LINELENGTH=0.1;
var stars=新阵列(500);
var canvas=document.getElementById(“教程”);
canvas.width=内部宽度;
canvas.height=内部高度;
var ctx=canvas.getContext(“2d”);
initStars();
设置间隔(动画,17);
函数随机范围(最小值、最大值){
返回Math.floor(Math.random()*(maxVal-minVal-1))+minVal;
}
函数initStars(){
对于(变量i=0;i如果(stars[i].z=0&&px=0&&py你可以说你想要一个光速效果

一种非常便宜的方法是用一些透明度来绘制背景。你也可以渲染一组靠近的点来产生效果的错觉

这样做的好方法是使用着色器,因为它们可以让您添加光晕和其他一些不错的图像技巧,从而使其看起来更好。下面是一个很好的示例:

下面我使用了canvas api
lineTo
,即使使用固定的线宽,这也是一个非常好的最终结果

var MAX_DEPTH=64;
var LINELENGTH=0.1;
var stars=新阵列(500);
var canvas=document.getElementById(“教程”);
canvas.width=内部宽度;
canvas.height=内部高度;
var ctx=canvas.getContext(“2d”);
initStars();
设置间隔(动画,17);
函数随机范围(最小值、最大值){
返回Math.floor(Math.random()*(maxVal-minVal-1))+minVal;
}
函数initStars(){
对于(变量i=0;i如果(星号[i].z=0&&px=0&&py不,不是灯光效果。当圆圈出现时,一对圆圈应该通过一条线相互连接,当它们随着时间的推移而移动时,线应该扩展并消失,当移动太远并移出画布时,我更新了代码以使用线条,而不是更便宜的方法。我想你不明白我的意思我是说,我的意思是两个相对的圆应该通过一条线彼此连接,该线随着移动的距离而扩展,然后消失,因为您需要一种方法来渲染扩展线。canvas API不支持这一点,因此您必须计算3D投影或找到一种方法来模拟它。不,不是灯光效果。当cir一对线应该通过一条线连接在一起,当它们分开时,线应该扩展,当它们分开太远并移出画布时,线应该消失。我更新了代码,使用线,而不是更便宜的方法。我想你不明白我说的,我的意思是,应该连接两个相反的圆通过一条线彼此连接,该线随着距离的移动而扩展,然后消失,因为您需要一种方法来渲染扩展线。canvas API不支持这一点,因此您必须计算3D投影或找到一种方法来模拟它。