使用canvas制作一个切了一半的西瓜

在前端开发中,使用HTML的<canvas>元素可以绘制各种图形,包括一个被切了一半的西瓜。以下是一个简单的示例,展示了如何使用Canvas API来绘制这样一个图形:

  1. HTML结构
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>切了一半的西瓜</title>
</head>
<body>
    <canvas id="watermelonCanvas" width="400" height="400"></canvas>
    <script src="script.js"></script>
</body>
</html>
  1. JavaScript代码 (script.js文件):
window.onload = function() {
    const canvas = document.getElementById('watermelonCanvas');
    const ctx = canvas.getContext('2d');

    // 绘制西瓜的外皮
    ctx.beginPath();
    ctx.arc(200, 200, 150, 0, Math.PI, false); // 半圆
    ctx.closePath();
    ctx.fillStyle = 'green';
    ctx.fill();
    ctx.lineWidth = 5;
    ctx.strokeStyle = 'darkgreen';
    ctx.stroke();

    // 绘制西瓜的内部(红色果肉)
    ctx.beginPath();
    ctx.arc(200, 200, 130, 0, Math.PI, false); // 稍小的半圆表示果肉
    ctx.closePath();
    ctx.fillStyle = 'red';
    ctx.fill();

    // 绘制西瓜籽
    function drawSeed(x, y) {
        ctx.beginPath();
        ctx.arc(x, y, 5, 0, 2 * Math.PI, false);
        ctx.fillStyle = 'black';
        ctx.fill();
    }

    // 在西瓜内部随机绘制西瓜籽
    for (let i = 0; i < 30; i++) {
        const angle = Math.random() * Math.PI; // 随机角度
        const radius = Math.random() * 130; // 随机半径
        const x = 200 + radius * Math.cos(angle);
        const y = 200 + radius * Math.sin(angle);
        drawSeed(x, y);
    }
};

这段代码首先定义了一个<canvas>元素,并在JavaScript中获取其上下文。然后,它使用Canvas API绘制了一个半圆形的西瓜外皮(绿色),接着在内部绘制了一个稍小的半圆形表示红色果肉。最后,它在果肉区域内随机绘制了多个黑色的西瓜籽。

posted @   王铁柱6  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示