当前位置: 首页 > news >正文

番禺网站开发技术网络推广方法怎么做

番禺网站开发技术,网络推广方法怎么做,北京城乡住房建设厅网站,电子商务网站建设调研报告特效描述:利用HTML5实现 3D海洋粒子 动画特效。利用HTML5实现3D海洋粒子动画特效代码结构1. HTML代码/***3D海洋效应与 Canvas2D* 您可以更改注释 "效果属性" 下的属性*/// Init Contextlet c document.createElement(canvas).getContext(2d)let postctx…

特效描述:利用HTML5实现 3D海洋粒子 动画特效。利用HTML5实现3D海洋粒子动画特效

代码结构

1. HTML代码

/**

*3D海洋效应与 Canvas2D

* 您可以更改注释 "效果属性" 下的属性

*/

// Init Context

let c = document.createElement('canvas').getContext('2d')

let postctx = document.body.appendChild(document.createElement('canvas')).getContext('2d')

let canvas = c.canvas

let vertices = []

// Effect Properties

let vertexCount = 7000

let vertexSize = 3

let oceanWidth = 204

let oceanHeight = -80

let gridSize = 32;

let waveSize = 16;

let perspective = 100;

// Common variables

let depth = (vertexCount / oceanWidth * gridSize)

let frame = 0

let { sin, cos, tan, PI } = Math

// Render loop

let loop = () => {

let rad = sin(frame / 100) * PI / 20

let rad2 = sin(frame / 50) * PI / 10

frame++

if (postctx.canvas.width !== postctx.canvas.offsetWidth || postctx.canvas.height !== postctx.canvas.offsetHeight) {

postctx.canvas.width = canvas.width = postctx.canvas.offsetWidth

postctx.canvas.height = canvas.height = postctx.canvas.offsetHeight

}

c.fillStyle = `hsl(200deg, 100%, 2%)`

c.fillRect(0, 0, canvas.width, canvas.height)

c.save()

c.translate(canvas.width / 2, canvas.height / 2)

c.beginPath()

vertices.forEach((vertex, i) => {

let ni = i + oceanWidth

let x = vertex[0] - frame % (gridSize * 2)

let z = vertex[2] - frame * 2 % gridSize + (i % 2 === 0 ? gridSize / 2 : 0)

let wave = (cos(frame / 45 + x / 50) - sin(frame / 20 + z / 50) + sin(frame / 30 + z*x / 10000))

let y = vertex[1] + wave * waveSize

let a = Math.max(0, 1 - (Math.sqrt(x ** 2 + z ** 2)) / depth)

let tx, ty, tz

y -= oceanHeight

// Transformation variables

tx = x

ty = y

tz = z

// Rotation Y

tx = x * cos(rad) + z * sin(rad)

tz = -x * sin(rad) + z * cos(rad)

x = tx

y = ty

z = tz

// Rotation Z

tx = x * cos(rad) - y * sin(rad)

ty = x * sin(rad) + y * cos(rad)

x = tx;

y = ty;

z = tz;

// Rotation X

ty = y * cos(rad2) - z * sin(rad2)

tz = y * sin(rad2) + z * cos(rad2)

x = tx;

y = ty;

z = tz;

x /= z / perspective

y /= z / perspective

if (a < 0.01) return

if (z < 0) return

c.globalAlpha = a

c.fillStyle = `hsl(${180 + wave * 20}deg, 100%, 50%)`

c.fillRect(x - a * vertexSize / 2, y - a * vertexSize / 2, a * vertexSize, a * vertexSize)

c.globalAlpha = 1

})

c.restore()

// Post-processing

postctx.drawImage(canvas, 0, 0)

postctx.globalCompositeOperation = "screen"

postctx.filter = 'blur(16px)'

postctx.drawImage(canvas, 0, 0)

postctx.filter = 'blur(0)'

postctx.globalCompositeOperation = "source-over"

requestAnimationFrame(loop)

}

// Generating dots

for (let i = 0; i < vertexCount; i++) {

let x = i % oceanWidth

let y = 0

let z = i / oceanWidth >> 0

let offset = oceanWidth / 2

vertices.push([(-offset + x) * gridSize, y * gridSize, z * gridSize])

}

loop()

http://www.lbrq.cn/news/2670877.html

相关文章:

  • 做彩票网站需要什么济南网站建设哪家好
  • 新加坡网站开发公司百度公司排名
  • 怎样用jsp做网站惠州seo关键字排名
  • 建设商城网站的网站出售
  • wordpress常见插件seo推广排名软件
  • 绵阳网络公司网站建设百度网盘会员
  • 夸克作文网站站长工具seo优化
  • 网站建设维护面试专业seo外包
  • 开发运营一个app要多少钱网站seo排名优化工具在线
  • 点网站出图片怎么做优化网站排名需要多少钱
  • wordpress博客申请seo代理
  • 工作室起名大全免费取名广州seo技术优化网站seo
  • 通化县住房和城乡建设局网站各大引擎搜索入口
  • 中国建设银行网站网上银行青岛谷歌推广
  • iis 5 如何添加网站seo网络推广经理
  • 免费网站开发公司郑州网络营销策划
  • 教育网站制作定制网络营销的概念与含义
  • 永安网页定制北京seo网站推广
  • 使用h5做的学习网站源码免费b站推广网站详情
  • 手机电商平台怎么做的冯宗耀seo教程
  • 抖音seo搜索优化百度关键词优化查询
  • 如何使用好单库选品库做网站在线网站排名工具
  • 做网站排名的公司有哪些网站优化公司排名
  • 做网站有什么软件吗黑帽seo论坛
  • 网站开发 打标签静态网站开发
  • 上海专业做网站公司电话搜狗网址
  • 网站建设企业文化seo外链软件
  • wordpress后台太慢搜索引擎关键词seo优化公司
  • 做网编去网站还是工作室好sem扫描电镜是测什么的
  • 芯互联大厦做网站的潮州seo建站
  • CI/CD渗透测试靶场
  • Knuth‘s TwoSum Algorithm 原理详解
  • QT常用控件三
  • Elasticsearch 搜索模板(Search Templates)把“可配置查询”装进 Mustache
  • 深入解析微服务分布式事务的原理与优化实践
  • 【代码随想录day 16】 力扣 513.找树左下角的值