Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
css
body { background-color: #0f0f0f; overflow: hidden; }
JavaScript
var settings = { size: 150, angle: 0.4, scale: 0.67, iterations: 10, animate: true, speed: 0.3, offset: 0, slices: 13 }; var width, height; var canvas = document.querySelector('canvas'); var context = canvas.getContext('2d'); var bufferCanvas = document.createElement('canvas'); var bufferContext = bufferCanvas.getContext('2d'); window.addEventListener('resize', resize); resize(); function resize() { width = bufferCanvas.width = canvas.width = window.innerWidth; height = bufferCanvas.height = canvas.height = window.innerHeight; bufferContext.translate(width * 0.5, height); bufferContext.strokeStyle = '#c3c3c3'; } function draw() { requestAnimationFrame(draw); if (settings.animate) settings.angle += 0.02 * settings.speed; var points = []; // Clear canvas bufferContext.save(); bufferContext.setTransform(1, 0, 0, 1, 0, 0); bufferContext.clearRect(0, 0, width, height); bufferContext.restore(); // Draw stem bufferContext.beginPath(); bufferContext.moveTo(0, 0); bufferContext.lineTo(0, -settings.size * settings.scale); bufferContext.stroke(); drawShape({x: 0, y: -settings.size * settings.scale, angle: -Math.PI * 0.5, size: settings.size}); for (var i = 0; i < settings.iterations; i++) { for (var j = points.length - 1; j >= 0; j--) { drawShape(points.pop()); } } function drawShape(point) { drawBranch(point, 1); // Branch right drawBranch(point, -1); // Branch left } function drawBranch(point, direction) { var angle = point.angle + (settings.angle * direction + settings.offset); var size = point.size * settings.scale; var x = point.x + Math.cos(angle) * size; var y = point.y + Math.sin(angle) * size; bufferContext.beginPath(); bufferContext.moveTo(point.x, point.y); bufferContext.lineTo(x, y); bufferContext.stroke(); points.unshift({x: x, y: y, angle: angle, size: size}); } var side1 = width * 0.5; var side2 = height * 0.5; var radius = Math.sqrt(side1 * side1 + side2 * side2); bufferContext.globalCompositeOperation = 'destination-in'; bufferContext.fillStyle = 'red'; bufferContext.beginPath(); // Nice variation // bufferContext.arc(0, 0, radius, -(Math.PI * 0.8 + (Math.PI / settings.slices)), -(Math.PI * 0.5 - (Math.PI / settings.slices))); bufferContext.arc(0, 0, radius, -(Math.PI * 0.5 + (Math.PI / settings.slices)), -(Math.PI * 0.5 - (Math.PI / settings.slices))); bufferContext.lineTo(0, 0); bufferContext.closePath(); bufferContext.fill(); bufferContext.globalCompositeOperation = 'source-over'; context.setTransform(1, 0, 0, 1, 0, 0); context.clearRect(0, 0, width, height); context.translate(width * 0.5, height * 0.5); for (var i = 0; i < settings.slices; i++) { context.rotate(Math.PI * 2 / settings.slices); context.drawImage(bufferCanvas, -width * 0.5, -height); } } draw(); var gui = new dat.GUI(); gui.add(settings, 'scale', 0, 1); gui.add(settings, 'angle', 0, Math.PI); gui.add(settings, 'iterations', 0, 12).step(1); gui.add(settings, 'speed', 0, 2); gui.add(settings, 'offset', 0, Math.PI * 2); gui.add(settings, 'slices', 1, 40).step(1); gui.add(settings, 'animate');
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>分形万花筒-jq22.com</title> <script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script> <style>
</style> </head> <body>
<script>
</script>
</body> </html>
2012-2021 jQuery插件库版权所有
jquery插件
|
jq22工具库
|
网页技术
|
广告合作
|
在线反馈
|
版权声明
沪ICP备13043785号-1
浙公网安备 33041102000314号