在不到200行的HTML代码中,实现老板要求为他的孩子绘制一个童话乐园:七彩彩虹、微笑笑脸和魔法树

news/2024/10/18 22:32:53/

文章目录

    • 准备工作
      • 1.绘制七彩彩虹
      • 2.绘制微笑笑脸
      • 3.绘制多变的魔法树
    • 结语

在这里插入图片描述

  欢迎来到童话乐园!这里有一些有趣的绘图功能,让你在代码的世界中感受童话般的乐趣。本篇博文将介绍如何使用代码来绘制七彩彩虹、微笑笑脸和魔法树。让我们一起来探索吧!

创作不易,看完觉得不错,右上角点个“Starred”★喔,感谢老铁!

准备工作

  在开始之前,你需要一个支持 HTML 的浏览器,以及一些基本的网页开发知识。确保你已经创建了一个新的 HTML 文件,并将以下代码复制粘贴到你的文件中。

<!DOCTYPE html>
<html>
<head><title>童话乐园</title><style>/* 样式代码 */</style>
</head>
<body><div class="container"><!-- 绘制七色彩虹的代码 --><!-- 绘制微笑笑脸的代码 --><!-- 绘制多变的魔法树的代码 --></div><script>/* JavaScript 代码 */</script>
</body>
</html>

1.绘制七彩彩虹

  我们首先来绘制一个美丽的七彩彩虹。通过点击按钮,你将在画布上看到一个绚丽的彩虹。让我们看看它的代码:

<div class="section"><h2 class="section-title">绘制七色彩虹</h2>        <button onclick="drawRainbow()">点击绘制彩虹</button><canvas id="rainbow-canvas" width="500" height="500"></canvas>
</div>
function drawRainbow() {var canvas = document.getElementById("rainbow-canvas");var ctx = canvas.getContext("2d");// 创建渐变var grd = ctx.createRadialGradient(250, 500, 150, 250, 500, 350);grd.addColorStop(0, "#ffffff");grd.addColorStop(0.3, "#8B00FF");grd.addColorStop(0.4, "#0000FF");grd.addColorStop(0.5, "#00FFFF");grd.addColorStop(0.6, "#00FF00");grd.addColorStop(0.7, "#FFFF00");grd.addColorStop(0.8, "#FF7F00");grd.addColorStop(0.9, "#FF0000");grd.addColorStop(1, "#ffffff");// 填充渐变ctx.fillStyle = grd;ctx.fillRect(10, 10, 500, 500)
}

  点击 “点击绘制彩虹” 按钮,即可在画布上看到绘制出的彩虹。

2.绘制微笑笑脸

  接下来,我们将绘制一个微笑的笑脸。通过点击按钮,你将在画布上看到一个可爱的笑脸。让我们看看它的代码:

<div class="section"><h2 class="section-title">绘制微笑笑脸</h2>           <button onclick="drawSmile()">点击绘制微笑</button><canvas id="smile-canvas" width="400" height="350"></canvas>
</div>
function drawSmile() {var canvas = document.getElementById("smile-canvas");var ctx = canvas.getContext("2d");// 绘制笑脸内容和边框ctx.beginPath();ctx.arc(200, 200, 100, 0, 2 * Math.PI);ctx.fillStyle = '#ffff00';ctx.fill();ctx.lineWidth = 2;ctx.strokeStyle = '#ffff00';ctx.stroke();// 绘制笑脸左眼ctx.beginPath();ctx.arc(150, 150, 20, 0, 2 * Math.PI);ctx.fillStyle = '#000';ctx.fill();// 绘制笑脸右眼ctx.beginPath();ctx.arc(250, 150, 20, 0, 2 * Math.PI);ctx.fillStyle = '#000';ctx.fill();// 绘制笑脸嘴型ctx.beginPath();ctx.arc(200, 230, 40, 0, Math.PI);ctx.strokeStyle = '#000';ctx.stroke();
}

  点击 “点击绘制微笑” 按钮,即可在画布上看到绘制出的笑脸。

3.绘制多变的魔法树

  最后,我们来绘制一棵多变的魔法树。通过点击按钮,你将在画布上看到一棵神奇的魔法大树。让我们看看它的代码:

<div class="section"><h2 class="section-title">绘制多变的魔法树</h2>           <button onclick="drawTree()">点击绘制魔法大树</button><canvas id="tree-canvas" width="800" height="700"></canvas>
</div>
function drawTree() {var canvas = document.getElementById("tree-canvas");var ctx = canvas.getContext("2d");// 添加上面的两句代码,将每次渲染不一样的树形// canvas.width = 640;// canvas.height = 480;drawTrees(ctx, 320, 470, 60, -Math.PI / 2, 12, 12);
}var drawTrees = function(ctx, startX, startY, length, angle, depth, branchWidth) {var rand = Math.random,newLength, newAngle, newDepth, maxBranch = 3,endX, endY, maxAngle = 2 * Math.PI / 4,subBraches;ctx.beginPath();ctx.moveTo(startX, startY);endX = startX + length * Math.cos(angle);endY = startY + length * Math.sin(angle);ctx.lineCap = 'round';ctx.lineWidth = branchWidth;ctx.lineTo(endX, endY);if (depth <= 2) {ctx.strokeStyle = 'rgb(0,' + (((rand() * 64) + 128) >> 0) + ',0)';} else {ctx.strokeStyle = 'rgb(' + (((rand() * 64) + 64) >> 0) + ',50,25)';}ctx.stroke();newDepth = depth - 1;if (!newDepth) return;subBranches = (rand() * (maxBranch - 1)) + 1;branchWidth *= 0.7;for (var i = 0; i < subBranches; i++) {newAngle = angle + rand() * maxAngle - maxAngle * 0.5;newLength = length * (0.7 + rand() * 0.3);drawTrees(ctx, endX, endY, newLength, newAngle, newDepth, branchWidth);}
}

  点击 “点击绘制魔法大树” 按钮,即可在画布上看到绘制出的魔法树。

结语

  通过这篇博文,我们介绍了童话乐园中的三个绘图功能:七彩彩虹、微笑笑脸和多变的魔法树。希望这些绘图功能能带给你一些乐趣和创造力的灵感。你可以根据自己的需求,进一步定制和改进这些代码,创造出更加独特的效果。

  感谢你阅读这篇博文,如果你有任何问题或建议,欢迎在下方留言。祝你在童话乐园中玩得开心!哈哈哈嗝!

在这里插入图片描述
创作不易,感谢您的点赞与支持。

http://www.ppmy.cn/news/248252.html

相关文章

HTML特殊字符编码对照表

HTML特殊字符编码对照表 特殊符号命名实体十进制编码特殊符号命名实体十进制编码特殊符号命名实体十进制编码Α&Alpha;Β&Beta;Γ&Gamma;Δ&Delta;Ε&Epsilon;Ζ&Zeta;Η&Eta;Θ&Theta;Ι&Iota;Κ&Kappa;Λ&Lambda;Μ&Mu;Ν&a…

python 读取配置文件总是报错 configparser.NoSectionError: No section:

本文为作者原创&#xff0c;禁止转载&#xff0c;违者必究法律责任&#xff01;&#xff01;&#xff01; python 读取配置文件总是报错 configparser.NoSectionError: No section: 无论是 python2的版本&#xff0c;还是python3的版本在读取配置文件时都会出现上面的报错 解决…

HEAP: HEAP: Free Heap block xx modified at xxafter it was freed 堆内存出现野指针错误

首先看下问题提示&#xff1a; HEAP[SimEng.exe]: HEAP: Free Heap block 000002CA51FC08A0 modified at 000002CA51FC0950 after it was freed Ok&#xff0c;碰到这种xxxx地址的报错提示就慌得一批。 解答 经过一种暴力式解谜&#xff0c;找到以下的原因&#xff08;解谜…

6174问题

描述 假设你有一个各位数字互不相同的四位数&#xff0c;把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数&#xff0c;并且继续操作。例如&#xff0c;从1234出发&#xff0c;依次可以得到4321-12343087、8730-3788352、8532-23586174&#xff0c;又…

openstack报错排查

openstack各个组件 openstack要保证各个组件能正常启动 否则创建实例等会报错 在启动openstack的时候 要查看各个服务是否正常启动了&#xff0c;如果有部分服务没有启动&#xff0c;则项目不能正常运行 [rootcontroller ~]# systemctl status open openstack-aodh-api.serv…

Spark执行spark-shell 报错 Cannot create directory /tmp/hive/root/xxx. Name node is in safe mode

1. 问题&#xff1a; Setting default log level to "WARN". To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). 20/11/05 21:03:21 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your pla…

Cannot create directory /tmp/hive/root/...... Name node is in safe mode

因为hadoop的安全模式导致dbeaver不能连接hive报错 Cannot create directory /tmp/hive/root/… Name node is in safe mode 什么原因导致hadoop集群启动安全模式 Df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 32G 0 32G 0% /dev tmpfs 32G 0 32G 0% /dev/shm t…

11.6 MariaDB安装 11.7/11.8/11.9 Apache安装

2019独角兽企业重金招聘Python工程师标准>>> 11.6 MariaDB安装 准备工作 因为MariaDB的二进制包镜像源在国外地址&#xff0c;所以预先下载了该包到本地物理机&#xff0c;使用lrzsz工具将该包上传至虚拟机/usr/local/src目录进行安装。用的香港的云服务器下载 上传…