阅读量:0
``Canvas Rose Curve and Heart Shape
html,,,,Canvas Rose and Heart,,,,,, var canvas = document.getElementById('myCanvas');, var ctx = canvas.getContext('2d');,, // Draw rose curve, ctx.beginPath();, ctx.moveTo(200, 200);, for (var i = 0; i< 360;="" i++)="" {,="" var="" x="200" +="" math.cos(i="" *="" math.pi="" 180)="" *="" 150="" *="" math.sin(i="" *="" math.pi="" 180);,="" var="" y="200" +="" math.sin(i="" *="" math.pi="" 180)="" *="" 150="" *="" math.cos(i="" *="" math.pi="" 180);,="" ctx.lineto(x,="" y);,="" },="" ctx.strokestyle='red' ;,="" ctx.stroke();,,="" draw="" heart="" shape,="" ctx.beginpath();,="" ctx.moveto(200,="" 200);,="" ctx.arc(200,="" 200,="" 100,="" 0,="" math.pi);,="" ctx.arc(200,="" 200,="" 75,="" math.pi,="" 0);,="" ctx.lineto(200,="" 200);,="" ctx.fillstyle='pink' ;,="">
`,,这段代码创建了一个HTML页面,其中包含一个
`元素用于绘制图形。使用JavaScript中的Canvas API,通过绘制贝塞尔曲线实现了玫瑰曲线,通过绘制圆弧和线段实现了心形图案。你可以将以上代码保存为一个HTML文件,然后在浏览器中打开查看效果。HTML5 Canvas 是一个强大的图形绘制工具,可以用来创建各种复杂的图形和动画,下面将介绍如何使用 HTML5 Canvas 实现玫瑰曲线和心形图案的代码实例。
1. 玫瑰曲线
1.1 简介
玫瑰曲线是一种极坐标下的参数方程曲线,其数学表达式为:
\[ x = \cos(k * \theta) \]
\[ y = \sin(k * \theta) \]
\( k \) 是常数,表示花瓣的数量;\( \theta \) 是极角,表示当前点与极轴之间的夹角。
1.2 代码实例
<!DOCTYPE html> <html> <head> <meta charset="utf8"> <title>Rose Curve</title> </head> <body> <canvas id="roseCanvas" width="400" height="400"></canvas> <script> const canvas = document.getElementById('roseCanvas'); const ctx = canvas.getContext('2d'); // 设置画布中心点 const centerX = canvas.width / 2; const centerY = canvas.height / 2; // 设置玫瑰曲线的参数 const k = 5; // 花瓣数量 const radius = 150; // 半径 // 清空画布 ctx.clearRect(0, 0, canvas.width, canvas.height); // 绘制玫瑰曲线 for (let theta = 0; theta <= 360; theta++) { const x = centerX + radius * Math.cos(k * theta * Math.PI / 180); const y = centerY + radius * Math.sin(k * theta * Math.PI / 180); ctx.lineTo(x, y); } // 闭合路径并填充颜色 ctx.closePath(); ctx.fillStyle = '#FF0000'; ctx.fill(); </script> </body> </html>
2. 心形图案
2.1 简介
心形图案是一种常见的几何形状,通常用于表达爱意,使用 HTML5 Canvas 可以方便地绘制心形图案。
2.2 代码实例
<!DOCTYPE html> <html> <head> <meta charset="utf8"> <title>Heart Shape</title> </head> <body> <canvas id="heartCanvas" width="400" height="400"></canvas> <script> const canvas = document.getElementById('heartCanvas'); const ctx = canvas.getContext('2d'); // 设置画布中心点 const centerX = canvas.width / 2; const centerY = canvas.height / 2; // 清空画布 ctx.clearRect(0, 0, canvas.width, canvas.height); // 绘制心形图案的左半部分 ctx.beginPath(); ctx.moveTo(centerX, centerY 100); ctx.bezierCurveTo(centerX 50, centerY 100, centerX 100, centerY + 100, centerX, centerY + 100); ctx.stroke(); // 绘制心形图案的右半部分 ctx.beginPath(); ctx.moveTo(centerX, centerY 100); ctx.bezierCurveTo(centerX + 50, centerY 100, centerX + 100, centerY + 100, centerX, centerY + 100); ctx.stroke(); </script> </body> </html>
FAQs
Q1: 如何调整玫瑰曲线的花瓣数量?
A1: 可以通过修改k
的值来调整玫瑰曲线的花瓣数量,将k
设置为 6,即可得到具有 6 个花瓣的玫瑰曲线。
Q2: 如何调整心形图案的大小?
A2: 可以通过修改贝塞尔曲线的控制点坐标来调整心形图案的大小,将控制点的纵坐标值增大,可以使心形图案变大;将控制点的纵坐标值减小,可以使心形图案变小。
```html
```
这段代码首先在HTML文档中定义了一个`canvas`元素,并为其设置了宽度和高度,然后在JavaScript中,定义了两个函数`drawRoseCurve`和`drawHeartShape`来分别绘制玫瑰曲线和心形图案。
`drawRoseCurve`函数使用了一个参数方程来绘制玫瑰曲线,a`和`k`是控制曲线大小和形状的参数。
`drawHeartShape`函数使用了一个心形的参数方程来绘制心形图案。
这两个函数被调用来在`canvas`上绘制图形。