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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/641390.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL-函数-日期函数

常见的日期函数 案例

Flutter中extension扩展类介绍及使用指南

Flutter 是一种流行的跨平台移动应用开发框架&#xff0c;由Google推出。在Flutter的世界中&#xff0c;扩展类(extension)是一种强大的工具&#xff0c;可以帮助开发者更好地组织和重用代码。本文将介绍Flutter中扩展类的基本概念&#xff0c;并展示如何在你的应用程序中有效地…

Hypervisor 和Docker 还有Qemu有什么区别与联系?

Hypervisor Hypervisor是一种运行在基础物理服务器和操作系统之间的中间软件层&#xff0c;可以让多个操作系统和应用共享硬件资源&#xff0c;也叫做虚拟机监视器&#xff08;VMM&#xff09;。 Hypervisor有两种类型&#xff1a;Type I和Type II。 Type I 直接运行在硬件上&a…

Http常用状态码

200 OK 请求成功。 201 Created 该请求已成功&#xff0c;并因此创建了一个新的资源。这通常是在PUT请求之后发送的响应。 204 No Content 服务器成功处理了请求&#xff0c;但不需要返回任何实体内容&#xff0c;并且希望返回更新了的元信息。响应可能通过实体头部的形式…

LabVIEW电火花线切割放电点位置

介绍了一个电火花线切割放电点位置分布评价系统&#xff0c;特别是在系统组成、硬件选择和LabVIEW软件应用方面。 本系统由两个主要部分组成&#xff1a;硬件和软件。硬件部分包括电流传感器、高速数据采集卡、开关电源、电阻和导线。软件部分则由LabVIEW编程环境构成&#xf…

复杂高层建筑环境多模态导航服务和引导管理机器人系统设计(预告)

课题基础 机器人工程ROS方向应用型本科毕业设计重点课题学生验收成果 将上面这篇所涉及的算法等应用到如下环境中。 Gazebo新环境AWS RoboMaker Hospital医院场景适用于ROS1和ROS2 高层可以简化为多层测试。最典型的就是两层及以上。 简介 随着城市化进程的加速和高层建筑…

[系统安全] 五十五.恶意软件分析 (7)IDA Python基础用法及CFG控制流图提取详解[上]

您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系…

数据结构(更新至链表)

数组 数组的代码 public class Myarr<T> {private int capacity0;private int size0;private T[]arr;//如果是空的则强制将容量扩充为10public Myarr(int capacity) {if (this.size 0) {this.capacity 10;this.arr(T[]) new Object[this.capacity];}}//按顺序添加数据…

docker清理垃圾命令

如果使用 docker 进行大规模开发&#xff0c;但是没有清理策略&#xff0c;那么的磁盘马上就会被填满&#xff0c;进而会影响整个ci/cd的流程。 docker积累的垃圾&#xff0c;包括&#xff1a; 已经停止的容器远古镜像磁盘卷默认网络 清理停止的容器 docker rm -v $(docker…

中美比特币储备曝光

作者&#xff1a;秦晋 自1月10日&#xff0c;美国SEC审批通过包含贝莱德在内的11只比特币现货ETF之后&#xff0c;短时间内&#xff0c;其总交易量已超过130亿美元。其资产管理规模超过白银ETF&#xff0c;成为美国第二大ETF商品类别。 据《Bitcoin Magazine》报道&#xff0c;…

分享一个“产业级,开箱即用”的NLP自然语言处理工具

NLP的全称是Natuarl Language Processing&#xff0c;中文意思是自然语言处理&#xff0c;是人工智能领域的一个重要方向 自然语言处理&#xff08;NLP&#xff09;的一个最伟大的方面是跨越多个领域的计算研究&#xff0c;从人工智能到计算语言学的多个计算研究领域都在研究计…

JAVASE进阶(设计模式、设计原则)(更新中...)

目录 一、注解 内置注解&#xff1a;JAVA中已经定义好的注解。 元注解&#xff1a;修饰注解的注解。 自定义注解。 二、克隆 JAVA中对clone的实现&#xff1f; 浅克隆 深克隆 那么该如何做到深克隆呢&#xff1f; 三、常用设计模式 1、创建型模式 单例模式 工厂模式 工…

【GitHub项目推荐--一个语音机器人项目】【转载】

推荐一个腾讯大佬开源的语音对话机器人&#xff1a;wukong-robot &#xff0c;悟空机器人在 GitHub 上斩获 3.2K 的 Star。 这是一个简单灵活的中文语音对话机器人项目&#xff0c;目的是让中国的开发者也能快速打造个性化的智能音箱&#xff0c;同时&#xff0c;该项目还是第…

网络安全进阶试题——附答案

选择题 以下哪个是网络安全的首要原则&#xff1f; A. 开放访问B. 机密性C. 全球畅通D. 数据泄露 什么是“零信任”安全模型的核心概念&#xff1f; A. 信任所有用户B. 信任无线网络C. 从内到外建立信任D. 不信任任何用户&#xff0c;无论其在内部还是外部 常见的社交工程攻击手…

QTableWidget 双击单元格修改数据

本章介绍通过双击单元格&#xff0c;进入单元格&#xff0c;进行编辑&#xff0c;并对比是否修改了数据&#xff0c;如果修改了更新到数据库。 其他关于QTableWidget的操作&#xff0c;请查看上一篇文章《QTableWidget 用法-CSDN博客》 修改单元格内容&#xff0c;与原值比较…

vue3 npm i 一直卡到不动

一. 首先node 版本要18.0及以上 查看node版本并安装指定版本 二. 查看npm镜像源以及指定安装npm的镜像 三. 删除项目中的package-lock.json文件 最好是把node_modules安装包也删除掉&#xff0c;然后npm i 就可以了

2024年开启重学前端和深入浅出系列

我回来了&#xff0c;2024年决定开启前端重学系列和深入浅出系列 系统化输出文章&#xff0c;后期出书或掘金小册子 2024年决定输出&#xff1a; 重学CSS3系列 重学JS系列 重学ES6系列 深入浅出Vue3 深入浅出微前端&#xff08;qiankun、wujie&#xff09; Vue3源码分析…

(十三)Head first design patterns原型模式(c++)

原型模式 原型模式就是就是对对象的克隆。有一些私有变量外界难以访问&#xff0c;而原型模式可以做到对原型一比一的复刻。 其关键代码为下面的clone方法。此方法将本对象进行复制传递出去。 class ConcretePrototype1 : public Prototype{ public:ConcretePrototype1(stri…

配置jdk环境变量

查看jdk在什么地方的命令 echo $JAVA_HOME 查看jdk的执行路径--使用which java whereis java zip -qr jdk21.zip jdk21/ 手动配置Java环境变量 修改配置环境 vim /etc/profile 把下面的配置放到文件的最后一行 export JAVA_HOME/usr/local/jdk1.8.0_202 # 这里设置…

网络安全人员一定要知道的Metasploit渗透框架!

简介 Metasploit是一款开源安全漏洞检测工具&#xff0c;附带数百个已知的软件漏洞&#xff0c;并保持频繁更新。被安全社区冠以“可以黑掉整个宇宙”之名的强大渗透测试框架。 Metasploit官网&#xff1a;www.metasploit.com/ Metasploit的Github仓库地址&#xff1a;githu…