首页 > 其他分享 >使用canvas画一条金鱼

使用canvas画一条金鱼

时间:2024-12-28 09:10:19浏览次数:6  
标签:canvas 一条 鱼尾 ctx 金鱼 lineTo closePath 鱼鳍

在前端开发中,使用 HTML5 的 <canvas> 元素绘制图形是一个常见的任务。下面是一个简单的示例,展示如何使用 <canvas> 和 JavaScript 来绘制一条金鱼:

  1. HTML 结构

首先,在 HTML 文件中添加一个 <canvas> 元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Draw a Goldfish</title>
</head>
<body>
    <canvas id="myCanvas" width="400" height="400" style="border:1px solid #000;"></canvas>
    <script src="script.js"></script>
</body>
</html>
  1. JavaScript 绘图

script.js 文件中,使用 JavaScript 来绘制金鱼。

window.onload = function() {
    const canvas = document.getElementById('myCanvas');
    const ctx = canvas.getContext('2d');

    // 画鱼身
    ctx.beginPath();
    ctx.arc(200, 200, 100, 0, Math.PI * 2, false); // 外圆
    ctx.fillStyle = 'orange';
    ctx.fill();
    ctx.closePath();

    // 画鱼眼
    ctx.beginPath();
    ctx.arc(170, 180, 15, 0, Math.PI * 2, false); // 左眼
    ctx.arc(230, 180, 15, 0, Math.PI * 2, false); // 右眼
    ctx.fillStyle = 'white';
    ctx.fill();
    ctx.closePath();

    // 画鱼鳍和鱼尾(使用简单的多边形)
    ctx.beginPath();
    ctx.moveTo(150, 220); // 起始点,左侧鱼鳍
    ctx.lineTo(150, 260);
    ctx.lineTo(180, 240);
    ctx.closePath();
    ctx.fillStyle = 'orange';
    ctx.fill();

    // 右侧鱼鳍,类似地绘制...
    // ... 你还可以继续添加更多的细节,如鱼尾、鱼嘴等。

    // 画鱼尾的示例(简单版)
    ctx.beginPath();
    ctx.moveTo(250, 220); // 起始点,鱼尾上部
    ctx.lineTo(220, 260); // 鱼尾左侧
    ctx.lineTo(250, 280); // 鱼尾中间点
    ctx.lineTo(280, 260); // 鱼尾右侧
    ctx.closePath();
    ctx.fillStyle = 'orange';
    ctx.fill();
};

这个示例中,我们使用了 <canvas> 元素和 JavaScript 的 Canvas API 来绘制一个简单的金鱼形状。你可以根据需要添加更多的细节和复杂度,比如更精细的鱼鳍、鱼尾形状,或者添加颜色渐变和阴影效果来让金鱼看起来更加生动。

标签:canvas,一条,鱼尾,ctx,金鱼,lineTo,closePath,鱼鳍
From: https://www.cnblogs.com/ai888/p/18637071

相关文章

  • 使用canvas画一个机器人(任意想象)
    在前端开发中,使用HTML5的<canvas>元素画一个机器人需要一些基本的绘图知识和对CanvasAPI的理解。以下是一个简单的示例,展示如何使用CanvasAPI来画一个基本的机器人形象:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"......
  • 使用canvas制作一个加载的动画
    在前端开发中,使用HTML5的<canvas>元素可以创建丰富的图形和动画。下面是一个简单的示例,展示如何使用<canvas>制作一个加载动画。首先,在HTML文件中添加一个<canvas>元素:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="vi......
  • 中考阅读理解深入逻辑分析-006 A Stream's Journey to the Sea 一条小溪通往大海的旅
    文章正文Alittlestreamrandownfromahighmountainfar,farawaythroughmanyvillagesandforests,untilitreachedadesert.Thestreamthenthought,“I’vebeenthroughcountlessdifficulties.Ishouldhavenoproblemcrossingthedesert!”Butasshes......
  • HTML画布canvas绘制图形,解决拖影问题
     在使用HTMl画面canvas绘制矩形,圆等图形时,总是出现拖影。解决这个问题有很多中方法:方法一:鼠标移动过程中中不画上去,在释放鼠标的时候绘制上去,这样就看不到拖影,但是看不到绘制过程方法二:在鼠标移动的时候,清除上一次绘制的矩形,然后在画,这样就没有拖影了,但是计算起来麻烦,要多......
  • Canvas实现渐变圆环并下载为图片
    因为地图上要展示一个渐变圆圆环的图标,找了很久没有找到现成满意的,于是就干脆自己使用Canvas画一个,颜色透明度什么的都额可以自己调整,Nice。其实模糊的圆环原理也很简单,就是绘制多个圆形,透明度设置不同就行了。然后页面上添加一个按钮,并通过点击该按钮将Canvas上的图形......
  • canvas入门-五子棋
    <scriptlang="ts"setup>import{nextTick,onMounted,ref}from'vue';//contrantsconstBORDER_LINES_NUM_FIFTEEN=15;constBORDER_PADDING_TWENTY=20;constBORDER_GRID_LENGTH_FORTY=40;constBORDER_LENGTH=600-BORDER......
  • 一条评论引发的思考和启示
    我今天在一个视频下面看到对这条评论挺有感触的,评论是这么说的:外网有个采访视频,粉丝量很高,他的拍摄方法和对方的差不多,有一说一,国内很多热点视频基本都是抄袭油管的,只不过打了信息差。为什么这条评论让我有了一定的思考呢?首先,这位博主他搞的是经济舱采访,这种题材在国内确实少见......
  • 旧版 Canvas 迁移指南
    旧版Canvas迁移指南小程序的旧版canvas接口已经不再维护,本指南将指引如何迁移至新版Canvas2D接口。特性差异旧版canvas接口Canvas2D接口同层渲染不支持支持api支持部分支持支持全部Web标准绘制异步绘制同步绘制性能低高迁移步骤......
  • Canvas 画布
    Canvas画布canvas组件提供了绘制界面,可以在之上进行任意绘制基础使用第一步:在WXML中添加canvas组件<!--2d类型的canvas--><canvasid="myCanvas"type="2d"style="border:1pxsolid;width:300px;height:150px;"/>首先需要在WXML中添加canvas组件。......
  • 【Canvas与标牌】夕阳下的“广阔天地大有可为”广告牌
    【成图】【代码】<!DOCTYPEhtml><htmllang="utf-8"><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><head><title>广阔天地大有可为广告牌Draft1</title><styletype......