canvas一周一练 -- canvas绘制马尾图案 (5)

运行效果:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <canvas id="drawing" width="1000" height="600">A drawing of someing!</canvas>
    <script type="text/javascript">
     var drawing = document.getElementById('drawing');
        if(drawing.getContext) {
            //绘制马尾图案
            var context = drawing.getContext('2d');
            //随机颜色
            var addZero = function(str){
                return str.length === 2 ? str : '0'+str;
            };
            var randomColor = function(redValue, greenValue, blueValue){
                redValue = addZero(redValue.toString(16));
                greenValue = addZero(greenValue.toString(16));
                blueValue = addZero(blueValue.toString(16));
                return '#' + redValue + greenValue + blueValue;
            };

            context.translate(250, 100);

            for(var i=0; i<50; i++) {
                context.fillStyle = randomColor(parseInt(Math.random()*256), parseInt(Math.random()*256), parseInt(Math.random()*256));
                context.scale(0.93, 0.93);//缩放
                context.rotate(Math.PI/9);//旋转画布
                context.translate(35, 12);
                context.fillRect(0, 0, 100, 50);
            }
        }

    </script>
</body>
</html>

 

转载于:https://www.cnblogs.com/merryZhang/p/7206501.html

好的,我来为您讲解canvas绘制立体文字(2)的实现方法。 首先,我们需要在HTML中创建一个canvas元素,并设置其宽高,如下所示: ```html <canvas id="myCanvas" width="600" height="400"></canvas> ``` 然后,我们需要在JavaScript中获取到这个canvas元素,并获取其2D绘图上下文对象,代码如下: ```javascript const canvas = document.getElementById('myCanvas'); const ctx = canvas.getContext('2d'); ``` 接下来,我们定义绘制立体文字的函数,代码如下: ```javascript function drawText(text, x, y, depth, angle) { // 设置字体样式 ctx.font = 'bold 80px Arial'; // 计算文字在x、y方向上的偏移量 const xOffset = Math.cos(angle) * depth; const yOffset = Math.sin(angle) * depth; // 绘制底部文字 ctx.fillStyle = 'rgba(0, 0, 0, 0.2)'; ctx.fillText(text, x + xOffset, y + yOffset); // 绘制顶部文字 ctx.fillStyle = '#fff'; ctx.fillText(text, x - xOffset, y - yOffset); } ``` 该函数接受5个参数: - `text`:要绘制的文字内容; - `x`:文字的x坐标; - `y`:文字的y坐标; - `depth`:文字的深度,即立体效果的大小; - `angle`:文字倾斜的角度。 我们先使用`ctx.font`设置字体样式,然后根据深度和角度计算出文字在x、y方向上的偏移量。 接着,我们先绘制底部文字,填充颜色为半透明的黑色,然后再绘制顶部文字,填充颜色为白色。 最后,我们在页面加载完成后调用该函数,传入相应的参数进行绘制,如下所示: ```javascript window.onload = function() { drawText('立体文字', 200, 200, 30, Math.PI / 4); }; ``` 运行代码,即可在canvas绘制出立体效果的文字。效果如下图所示: ![canvas绘制立体文字(2)](https://img-blog.csdnimg.cn/20210730165541198.png)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值