当前位置: 首页 > news >正文

canvas绘制旋转的椭圆花

在这里插入图片描述

查看专栏目录

canvas实例应用100+专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重要的帮助。

文章目录

    • 示例效果图
    • 示例源代码(共88行)
    • canvas基本属性
    • canvas基础方法

如何使用canvas绘制旋转的椭圆花呢?思路很简单,将同一个中心点的相同的多个椭圆形做角度的旋转。通过循环,均匀的分布在圆点的周围,形成一个花一样的形状。 绘制椭圆形基础示例

示例效果图

在这里插入图片描述

示例源代码(共88行)


/*
* @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN)
* @此源代码版权归大剑师兰特所有,可供学习或商业项目中借鉴,未经授权,不得重复地发表到博客、论坛,问答,git等公共空间或网站中。
* @Email: 2909222303@qq.com
* @weixin: gis-dajianshi
* @First published in CSDN
* @First published time: 2024-01-23
*/
<template><div class="djs_container"><div class="top"><h3>canvas绘制旋转的椭圆花</h3><div>大剑师兰特, 还是大剑师兰特,gis-dajianshi</div><h4><el-button type="primary" size="mini" @click="draw()">绘制</el-button><el-button type="danger" size="mini" @click="clearCanvas()">清除</el-button></h4></div><div class="dajianshi "><canvas id="dajianshi" ref="mycanvas" width="980" height="490"></canvas></div></div>
</template>
<script>export default {data() {return {ctx: null,canvas: null,}},mounted() {this.setCanvas()},methods: {clearCanvas() {this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);},setCanvas() {this.canvas = document.getElementById('dajianshi');if (!this.canvas.getContext) return;this.ctx = this.canvas.getContext("2d");},draw() {var num = 60;for (var i = 0; i < num; i++) {let angle = (2 * Math.PI * i) / num;this.drawEllipse(this.ctx, 490, 245, 200, 30, angle, 'transparent', 'orange');}},//边数n中心点dx,中心点dy,长半轴rx,短半轴ry,旋转角度angledrawEllipse(djs_ctx, dx, dy, rx, ry, angle, djs_fillColor, djs_strokeColor) {djs_ctx.beginPath();djs_ctx.ellipse(dx, dy, rx, ry, angle, 0, 2 * Math.PI);djs_ctx.strokeStyle = djs_strokeColor;djs_ctx.lineWidth = 1djs_ctx.stroke();djs_ctx.fillStyle = djs_fillColor;djs_ctx.fill();}}}
</script>
<style scoped>.djs_container {width: 1000px;height: 680px;margin: 50px auto;border: 1px solid #991188;position: relative;}.top {margin: 0 auto 0px;padding: 10px 0;background: #991188;color: #fff;}.dajianshi {margin: 5px auto 0;border: 1px solid #ccc;width: 980px;height: 490px;background-color: #f9f9f9;}
</style>

canvas基本属性

属性属性属性
canvasfillStylefilter
fontglobalAlphaglobalCompositeOperation
heightlineCaplineDashOffset
lineJoinlineWidthmiterLimit
shadowBlurshadowColorshadowOffsetX
shadowOffsetYstrokeStyletextAlign
textBaselinewidth

canvas基础方法

方法方法方法
arc()arcTo()addColorStop()
beginPath()bezierCurveTo()clearRect()
clip()close()closePath()
createImageData()createLinearGradient()createPattern()
createRadialGradient()drawFocusIfNeeded()drawImage()
ellipse()fill()fillRect()
fillText()getImageData()getLineDash()
isPointInPath()isPointInStroke()lineTo()
measureText()moveTo()putImageData()
quadraticCurveTo()rect()restore()
rotate()save()scale()
setLineDash()setTransform()stroke()
strokeRect()strokeText()transform()
translate()

相关文章:

  • angular-tree-component组件中实现特定节点自动展开
  • package.json包版本控制方法介绍
  • 2024年 复习 HTML5+CSS3+移动web 笔记 之CSS遍
  • [pytorch入门] 3. torchvision中的transforms
  • 【Java程序员面试专栏 专业技能篇】MySQL核心面试指引(一):基础知识考察
  • CSS 蜡烛效果
  • Python皮卡丘
  • 界面控件DevExpress ASP.NET Data Grid组件 - 可快速处理各类型数据!(一)
  • #vue3 实现前端下载excel文件模板功能
  • 智能机器人与旋量代数(9)
  • 优化用户体验测试应用领域:提升产品质量与用户满意度
  • ffmpeg使用及java操作
  • 自然语言处理--双向匹配算法
  • 【GoLang入门教程】Go语言工程结构详述
  • c#中使用UTF-8编码处理多语言文本的有效策略
  • [笔记] php常见简单功能及函数
  • Fundebug计费标准解释:事件数是如何定义的?
  • HTTP请求重发
  • IOS评论框不贴底(ios12新bug)
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Node 版本管理
  • Python3爬取英雄联盟英雄皮肤大图
  • socket.io+express实现聊天室的思考(三)
  • Spring-boot 启动时碰到的错误
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 服务器之间,相同帐号,实现免密钥登录
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 由插件封装引出的一丢丢思考
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​卜东波研究员:高观点下的少儿计算思维
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • ###项目技术发展史
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (pojstep1.3.1)1017(构造法模拟)
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (附源码)计算机毕业设计大学生兼职系统
  • (强烈推荐)移动端音视频从零到上手(下)
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转)jQuery 基础
  • (转)创业家杂志:UCWEB天使第一步
  • .mysql secret在哪_MySQL如何使用索引
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET框架
  • .NET正则基础之——正则委托
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • :not(:first-child)和:not(:last-child)的用法
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians
  • [acwing周赛复盘] 第 69 场周赛20220917