canvas基础:fillStyle 和strokeStyle示例

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

文章目录

    • 上色说明
    • 示例效果图
    • 示例源代码(共84行)
    • canvas基本属性
    • canvas基础方法

canvas中,如果想要给图形上色,有两个重要的属性可以做到。

fillStyle = color 设置图形的填充颜色
strokeStyle = color 设置图形轮廓的颜色

上色说明

  1. color 可以是表示 css 颜色值的字符串、渐变对象或者图案对象。
  2. 默认情况下,线条和填充颜色都是黑色。
  3. 一旦您设置了 strokeStyle 或者 fillStyle 的值,那么这个新值就会成为新绘制的图形的默认值。如果你要给每个图形上不同的颜色,你需要重新设置 fillStyle 或 strokeStyle 的值。

示例效果图

在这里插入图片描述

示例源代码(共84行)

/*
* @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN)
* @此源代码版权归大剑师兰特所有,可供学习或商业项目中借鉴,未经授权,不得重复地发表到博客、论坛,问答,git等公共空间或网站中。
* @Email: 2909222303@qq.com
* @weixin: gis-dajianshi
* @First published in CSDN
* @First published time: 2023-12-03
*/
<template>
	<div class="container">
		<div class="top">
			<h3>canvas的fillStyle 和 strokeStyle</h3>
			<div>大剑师兰特, 还是大剑师兰特,gis-dajianshi</div>
		</div>
		<div class="dajianshi ">
			<canvas id="dajianshi" width="800" height="400" ></canvas>
		</div>

	</div>
</template>
<script>
	export default {
		data() {
			return {}
		},
		mounted() {
			this.getdata()
		},
		methods: {
			getdata() {
				
				function randomInt(from, to){
				    return parseInt(Math.random() * (to - from + 1) + from);
				}
				var canvas = document.getElementById('dajianshi');
				if (!canvas.getContext) return;
				var ctx = canvas.getContext("2d");
				
				// fillStyle 内部填充
				for (let i = 0; i < 6; i++){
					for (let j = 0; j < 6; j++){
					  ctx.fillStyle = 'rgb(' + Math.floor(255 - 42.5 * i) + ',' +
						Math.floor(255 - 42.5 * j) + ',0)';
					  ctx.fillRect(j * 50+50, i * 50+50, 50, 50);
					}
				  }	
				
				// strokeStyle 边框填充	
				
				 for (let i = 0; i < 6; i++){
				        for (let j = 0; j < 6; j++){
				            ctx.strokeStyle = `rgb(${randomInt(0, 255)},${randomInt(0, 255)},${randomInt(0, 255)})`;
				            ctx.strokeRect(j * 50+400, i * 50+50, 44, 44);
				        }
				    }
						
			},
		}
	}
</script>

<style scoped>
	.container {
		width: 1000px;
		height: 600px;
		margin: 50px auto;
		border: 1px solid green;
		position: relative;
	}

	.top {
		margin: 0 auto 0px;
		padding: 10px 0;
		background: orangered;
		color: #fff;
	}

	.dajianshi {
		margin: 50px auto 0;
		width: 800px;
		height: 400px;
		background:#f6f6f6;
	}
</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()

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Task 超详解版

目录 一、定时任务的理解 二、入门案例 三、Cron表达式 四、Cron实战案例 五、多线程案例 一、定时任务的理解 定时任务即系统在特定时间执行一段代码&#xff0c;它的场景应用非常广泛&#xff1a; 购买游戏的月卡会员后&#xff0c;系统每天给会员发放游戏资源。管理系…

基于姿态估计的3D动画生成

在本文中&#xff0c;我们将尝试通过跟踪 2D 视频中的动作来渲染人物的 3D 动画。 在 3D 图形中制作人物动画需要大量的运动跟踪器来跟踪人物的动作&#xff0c;并且还需要时间手动制作每个肢体的动画。 我们的目标是提供一种节省时间的方法来完成同样的任务。 我们对这个问题…

EasyMetagenome易宏基因组——简单易用的宏基因组分析流程-来自刘永鑫团队的秘密武器

原仓库地址如下&#xff0c;github有时候无法访问&#xff0c;等一段时间再试就行&#xff1a; YongxinLiu/EasyMetagenome: Easy Metagenome Pipeline (github.com) 相关文章&#xff0c;看文章更清晰这个可干啥&#xff1a; EasyAmplicon: An easy‐to‐use, open‐source…

JAVA高级-1

常用API 第一章 API 产品说明书 第二章 Scanner类&#xff08;输入&#xff09; 功能&#xff1a;获取键盘输入 package day7_12.demo01_Scanner;import java.util.Scanner; //1、导包 /* 功能&#xff1a;获取键盘输入引用类型一般使用步骤1、导包&#xff1a;impo…

深入了解汉字转拼音转换工具:原理与应用

一、引言 汉字作为世界上最古老、最具象形意的文字之一&#xff0c;承载了数千年的历史文明。然而&#xff0c;在现代信息技术环境下&#xff0c;汉字的输入、输出和检索等方面存在一定的局限性。拼音作为汉字的一种音标表达方式&#xff0c;能够有效地解决这些问题。本文将为…

JS利用时间戳倒计时案例

我们在逛某宝&#xff0c;或者逛某东时&#xff0c;我们时常看到一个倒计时&#xff0c;时间一到就开抢&#xff0c;这个倒计时是如何做的呢&#xff1f;让我为大家介绍一下。 理性分析一下&#xff1a; 1.用将来时间减去现在时间就是剩余的时间 2.核心&#xff1a;使用将来的时…

完全背包问题 非零基础

目录 之前学过一遍&#xff0c;但是12月2日再练忘光光了&#xff1a; 忘记点1 —— 为什么每个物品要遍历k件&#xff1a; 忘记点2 —— 数学优化&#xff1a; 之前学过一遍&#xff0c;但是12月2日再练忘光光了&#xff1a; 【模板】完全背包_牛客题霸_牛客网 (nowcoder.c…

智慧公厕新风系统是什么?具体作用?

大家好&#xff0c;你们可曾在公厕里遇到那个臭味怪兽&#xff0c;闻得让人头晕目眩&#xff1f;别怕&#xff0c;我们有一把利剑&#xff0c;叫做“智慧公厕新风系统”&#xff01;不仅是空气净化器的升级版&#xff0c;还有一大堆高级功能等着你来领略&#xff01; 1. 风清气…

Linux常用命令——awk命令

在线Linux命令查询工具 awk 文本和数据进行处理的编程语言 补充说明 awk是一种编程语言&#xff0c;用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件&#xff0c;或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能…

1+x网络系统建设与运维(中级)-练习3

一.设备命名 AR1 [Huawei]sysn AR1 [AR1] 同理可得&#xff0c;所有设备的命名如上图所示 二.VLAN LSW1 [LSW1]vlan 10 [LSW1-vlan10]q [LSW1]int g0/0/1 [LSW1-GigabitEthernet0/0/1]port link-type access [LSW1-GigabitEthernet0/0/1]port default vlan 10 [LSW1-GigabitEt…

SQL数据库知识点总结

前后顺序可以任意颠倒&#xff0c;不影响库中的数据关系 关系数据库的逻辑性强而物理性弱&#xff0c;因此关系数据库中的各条记录前后顺序可以任意颠倒&#xff0c;不影响库中的数据关系 一名员工可以使用多台计算机&#xff08;1&#xff1a;m&#xff09;&#xff0c;而一…

Knowledge Review(CVPR 2021)论文解析

paper&#xff1a;Distilling Knowledge via Knowledge Review official implementation&#xff1a;https://github.com/dvlab-research/ReviewKD 前言 识蒸馏将知识从教师网络转移到学生网络&#xff0c;可以提高学生网络的性能&#xff0c;作为一种“模型压缩”的方法被…

数据结构树,二叉树,堆

目录 ​编辑 1.树概念及结构 2. 树的表示 3.二叉树概念及结构 特殊的二叉树 二叉树的性质 ​编辑 二叉树选择题 二叉树的存储结构 4.堆的概念及结构 父亲孩子下标关系​编辑 堆的实现接口 堆结构体设计堆的初始化堆的销毁 堆的插入(附&#xff1a;向上调整算法) 堆…

[多线程]线程安全问题再讨论 - volatile

目录 1.引言 2.volatil关键字 2.1内存可见性 2.2指令重排序 1.引言 大家好,我是老cu,今天我们来继续聊聊线程安全问题 线程安全是我们在编程开发中遇到的非常常见,棘手 的问题.同时也是多线程部分很复杂的问题.为了线程安全我们要做很多努力.也要对线程安全部分的代码进行慎…

计算机网络的分类

目录 一、按照传输介质进行分类 1、有线网络 2、无线网络 二、按照使用者进行分类 1、公用网 (public network) 2、专用网(private network) 三、按照网络规模和作用范围进行分类 1、PAN 个人局域网 2、LAN 局域网 3、MAN 城域网 4、 WAN 广域网 5、Internet 因特…

【算法】直接插入排序

目录 1. 说明2. 举个例子3. java代码示例4. java示例截图 1. 说明 1.直接插入排序的方式和打牌一样&#xff0c;刚开始数组为空 2.拿到一个数字后从左到右将它与数组中的每一个数字进行比较&#xff0c;然后插入合适的位置 3.到最后&#xff0c;数组按照既定的顺序排序好 2. 举…

代码随想录算法训练营第五十三天【动态规划part14】 | 1143.最长公共子序列、1035.不相交的线、53. 最大子序和

1143.最长公共子序列 题目链接 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 求解思路 动规五部曲 1.确定dp数组及其下标含义&#xff1a; dp[i][j]&#xff1a;长度为[0, i - 1]的字符串text1与长度为[0, j - 1]的字符串text2的最长公共子序…

Tensorflow的日志log记录

if OUTPUT_GRAPH:tf.summary.FileWriter("logs/", sess.graph)自动创建文件夹log

GEE:Sobel算子卷积和Roberts算子卷积对比

作者:CSDN @ _养乐多_ 本文介绍了Sobel算子卷积和Roberts算子卷积操作的代码,并进行了图像对比,可以观察到两个算子的细微差异。 文章目录 一、Sobel算子和Roberts算子对比二、完整代码三、代码链接一、Sobel算子和Roberts算子对比 详细介绍介绍参考《遥感数字图像处理教程…

基于搜索协议实现工业设备升级

目录 1、背景引入 2、技术分析 3、过程概述 4、服务器端流程 5、客户端流程 6、效果展示 7、源码 7.1 master&#xff08;主控&#xff09; 7.2 device&#xff08;设备&#xff09; 8、注意事项 1、背景引入 在工业生产中&#xff0c;设备的升级和维护是非常重要的…