用 JavaScript 画一个心形
时间: 2023-09-05 09:05:17 浏览: 141
### 回答1:
可以使用 canvas 元素和贝塞尔曲线在 JavaScript 中绘制心形。首先,需要创建一个 canvas 元素并指定宽度和高度:
```
<canvas id="myCanvas" width="200" height="200"></canvas>
```
然后,可以使用 JavaScript 获取 canvas 元素并获取其绘图环境:
```
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
```
接下来,可以使用贝塞尔曲线绘制心形,需要使用 moveTo() 方法移动画笔到起点,然后使用 bezierCurveTo() 方法绘制贝塞尔曲线。
```
ctx.moveTo(75, 40);
ctx.bezierCurveTo(75, 37, 70, 25, 50, 25);
ctx.bezierCurveTo(20, 25, 20, 62.5, 20, 62.5);
ctx.bezierCurveTo(20, 80, 40, 102, 75, 120);
ctx.bezierCurveTo(110, 102, 130, 80, 130, 62.5);
ctx.bezierCurveTo(130, 62.5, 130, 25, 100, 25);
ctx.bezierCurveTo(85, 25, 75, 37, 75, 40);
```
最后,使用 fillStyle 属性设置填充颜色,然后使用 fill() 方法填充心形:
```
ctx.fillStyle = '#ff0000';
ctx.fill();
```
完整的代码如下:
```
<canvas id="myCanvas" width="200" height="200"></canvas>
<script>
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.moveTo(75, 40);
ctx.bezierCurveTo(75, 37, 70, 25, 50, 25);
ctx.bezierCurveTo(20, 25, 20, 62.5, 20, 62.5);
ctx.bezierCurveTo(20, 80, 40, 102, 75, 120);
ctx.bezierCurveTo(110, 102, 130, 80, 130, 62.5);
### 回答2:
要用 JavaScript 画一个心形,可以使用 `canvas` 元素来绘制图形。以下是一个简单的代码示例:
```html
<canvas id="myCanvas" width="200" height="200"></canvas>
```
```javascript
const canvas = document.getElementById("myCanvas");
const context = canvas.getContext("2d");
context.beginPath();
context.moveTo(100, 60); // 设置起始点
// 绘制左侧半个心形
context.bezierCurveTo(100, 20, 40, 20, 40, 60);
context.bezierCurveTo(40, 100, 100, 140, 100, 180);
// 绘制右侧半个心形
context.bezierCurveTo(100, 140, 160, 100, 160, 60);
context.bezierCurveTo(160, 20, 100, 20, 100, 60);
context.closePath(); // 闭合路径
context.fillStyle = "red"; // 设置填充颜色为红色
context.fill(); // 填充路径
```
上述代码首先通过 `getElementById` 获取 `canvas` 元素,并通过 `getContext("2d")` 创建一个 2D 绘图环境。然后,使用 `moveTo` 设置起点,再使用 `bezierCurveTo` 绘制两个贝塞尔曲线来构成心形的左侧半部分。接着,再使用 `bezierCurveTo` 绘制两个贝塞尔曲线来构成心形的右侧半部分。最后,使用 `closePath` 闭合路径,设置填充颜色为红色,并通过 `fill` 方法填充路径。
以上代码可以在一个 HTML 文件中运行,将心形绘制在一个宽高为 200px 的 `canvas` 中。当打开这个 HTML 文件时,将会看到一个用 JavaScript 绘制的红色心形。
相关推荐
![html](https://img-home.csdnimg.cn/images/20210720083451.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![html](https://img-home.csdnimg.cn/images/20210720083451.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)