织梦贷款网站源码站长之家网站模板
black-hole.js是一款效果非常炫酷的模拟宇宙黑洞引力特效的js插件。该插件基于HTML5 canvas,使用WebGL、 glfx.js和 numeric.js 共同制作完成。其效果是在鼠标滑过图片时,鼠标附近区域形成黑洞空间效果,使它周围的空间坍缩,效果非常逼真。
该黑洞引力特效插件使用numeric.js来计算所需要的数值的微分方程解。numeric.js是一个包含有许多有用的数学公式的js库,关于该js库的信息可以参考Numeric官方文档,你还可以尝试在线使用numeric.js。插件中使用了numeric.dopri()函数,该函数使用Dormand-Prince RK方法执行一个ODE(常微分方程)数值积分,这个函数将使用一个ODE并输出大量合适的ODE约束点序列,然后就可以绘制相应的点。
另外,该宇宙黑洞特效插件使用glfx.js来应用WebGL渲染黑洞引力的效果。glfx.js可以使我们非常容易的在2D图像上创建非常有意思的特效,如漩涡效果和胀形透镜效果等。这个黑洞效果使用GLSL着色器来创建。
注意:由于HTML5的安全限制,插件中的图片必须是同源的图片。在本地浏览器这个插件时,Chrome浏览器会看不到效果,你可以使用Firefox浏览器在本地查看这个demo。
使用方法
HTML结构
该插件使用一个
创建调用
调用该插件之前首先要引入必要的依赖文件。
然后可以通过下面的方法来调用该黑洞特效插件。
var corsOkImageUrl = 'https://s3-us-west-2.amazonaws.com/ccrosland-share-bucket/black-hole/milkyway.jpg';
BlackHole.blackHoleifyImage('canvas_placeholder', corsOkImageUrl)
你也可以指定一些参数来改变黑洞引力效果。
BlackHole.blackHoleifyImage(placeholderId, corsOkImageUrl, {
distanceFromBlackHole: 70, // 80 is default
polynomialDegree: 3, // 2 is default
numAngleTableEntries: 2000, // 1000 is default. More might improve quality but impact performance
fovAngleInDegrees: 60, // 73 is default. Yeah, it's an unusual choice, but it just looked cool, ok?
});