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

【Canvas与图标】乡土风金属铝边立方红黄底黑字图像处理图标

【成图】

120*120图标:

大小图:

【代码】

<!DOCTYPE html>
<html lang="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<head><title>金属铝边立方红黄底黑字图像处理图标</title><style type="text/css">.centerlize{margin:0 auto;width:1200px;}</style></head><body οnlοad="init();"><div class="centerlize"><canvas id="myCanvas" width="12px" height="12px" style="border:1px dotted black;">如果看到这段文字说您的浏览器尚不支持HTML5 Canvas,请更换浏览器再试.</canvas></div></body>
</html>
<script type="text/javascript">
<!--
/*****************************************************************
* 将全体代码(从<!DOCTYPE到script>)拷贝下来,粘贴到文本编辑器中,
* 另存为.html文件,再用chrome浏览器打开,就能看到实现效果。
******************************************************************/// canvas的绘图环境
var ctx;// 高宽
const WIDTH=512;
const HEIGHT=512;// 舞台对象
var stage;//-------------------------------
// 初始化
//-------------------------------
function init(){// 获得canvas对象var canvas=document.getElementById('myCanvas');  canvas.width=WIDTH;canvas.height=HEIGHT;// 初始化canvas的绘图环境ctx=canvas.getContext('2d');  ctx.translate(WIDTH/2,HEIGHT/2);// 原点平移// 准备stage=new Stage();    stage.init();// 开幕animate();
}// 播放动画
function animate(){    stage.update();    stage.paintBg(ctx);stage.paintFg(ctx);     // 循环if(true){//sleep(100);window.requestAnimationFrame(animate);   }
}// 舞台类
function Stage(){// 初始化this.init=function(){}// 更新this.update=function(){    }// 画背景this.paintBg=function(ctx){ctx.clearRect(-WIDTH/2,-HEIGHT/2,WIDTH,HEIGHT);// 清屏    }// 画前景this.paintFg=function(ctx){// 底色ctx.save();ctx.fillStyle = "white";ctx.fillRect(-WIDTH/2,-HEIGHT/2,WIDTH,HEIGHT);ctx.restore();const R=210;// 基准尺寸// 第1圈ctx.save();    ctx.shadowOffsetX=R/105; ctx.shadowOffsetY=R/105; ctx.shadowColor="lightgrey";ctx.shadowBlur=R/105*2;var r=R*1.00;ctx.fillStyle="grey";drawRhombusSqare(ctx,0,0,r,R/6);ctx.fill();ctx.restore();    // 第2圈ctx.save();    var r=R*0.99;var gnt2=ctx.createLinearGradient(0,-r,0,r);gnt2.addColorStop(0,"rgb(111,111,111)");gnt2.addColorStop(0.25,"rgb(251,251,251)");gnt2.addColorStop(0.5,"rgb(179,179,179)");gnt2.addColorStop(0.75,"rgb(251,251,251)");gnt2.addColorStop(1.0,"rgb(111,111,111)");ctx.fillStyle=gnt2;drawRhombusSqare(ctx,0,0,r,R/6-0.01*R);ctx.fill();ctx.restore();// 第3圈ctx.save();    var r=R*0.91;var gnt2=ctx.createLinearGradient(0,-r,0,r);gnt2.addColorStop(0,"rgb(107,107,107)");gnt2.addColorStop(0.25,"rgb(143,143,143)");gnt2.addColorStop(0.5,"rgb(95,95,95)");gnt2.addColorStop(0.75,"rgb(143,143,143)");gnt2.addColorStop(1.0,"rgb(107,107,107)");ctx.fillStyle=gnt2;drawRhombusSqare(ctx,0,0,r,R/6-0.01*R-0.04*R);ctx.fill();ctx.restore();// 第4圈ctx.save();    var r=R*0.87;ctx.fillStyle="rgb(210,33,30)";drawRhombusSqare(ctx,0,0,r,R/6-0.01*R-0.06*R);ctx.fill();ctx.restore();// 黄带ctx.save();    var r=R*0.87;drawRhombusSqare(ctx,0,0,r,R/6-0.01*R-0.06*R);ctx.clip();ctx.fillStyle="rgb(247,187,15)";drawRect(ctx,0,0,2*r,r);ctx.fill();ctx.restore();// 白线ctx.save();    var r=R*0.87;drawRhombusSqare(ctx,0,0,r,R/6-0.01*R-0.06*R);ctx.clip();ctx.lineWidth=R/105;ctx.strokeStyle="white";var N=12;var PART=r/N;for(var i=0;i<N+1;i++){ctx.beginPath();ctx.moveTo(-r,-r/2+i*PART);ctx.lineTo(+r,-r/2+i*PART);ctx.stroke();}ctx.restore();// 文字ctx.save();    var r=R*0.87;ctx.textBaseline="middle";ctx.textAlign="center";ctx.font = r*0.4+"px 方正宋刻本秀楷简体";ctx.fillStyle="black";ctx.fillText("图像处理",0,r*0);ctx.restore();writeText(ctx,WIDTH/2-30,HEIGHT/2-5,"逆火制图","8px consolas","lightgrey");// 版权}
}/*----------------------------------------------------------
函数:用于绘制旋转45°的正方形
ctx:绘图上下文
x:正方形中心横坐标
y:正方形中心纵坐标
radius:正方形中心到顶点的距离
roundRadius:圆角半径
----------------------------------------------------------*/
function drawRhombusSqare(ctx,x,y,radius,roundRadius){const r=radius;// 中心到顶点的距离const round=roundRadius;// 圆角半径var center=createPt(x,y);var a=createPt(center.x+r*Math.cos(Math.PI/2*0),center.y+r*Math.sin(Math.PI/2*0));var angle=Math.PI/4*5;var l=round;var a1=createPt(a.x+l*Math.cos(angle),a.y+l*Math.sin(angle));angle=Math.PI/4*3;l=round;var a2=createPt(a.x+l*Math.cos(angle),a.y+l*Math.sin(angle));angle=Math.PI;l=round*Math.sqrt(2);var a0=createPt(a.x+l*Math.cos(angle),a.y+l*Math.sin(angle));var b=createPt(center.x+r*Math.cos(Math.PI/2*1),center.y+r*Math.sin(Math.PI/2*1));angle=-Math.PI/4;l=round;var b1=createPt(b.x+l*Math.cos(angle),b.y+l*Math.sin(angle));angle=Math.PI/4*5;l=round;var b2=createPt(b.x+l*Math.cos(angle),b.y+l*Math.sin(angle));angle=-Math.PI/2;l=round*Math.sqrt(2);var b0=createPt(b.x+l*Math.cos(angle),b.y+l*Math.sin(angle));var c=createPt(center.x+r*Math.cos(Math.PI/2*2),center.y+r*Math.sin(Math.PI/2*2));angle=Math.PI/4*1;l=round;var c1=createPt(c.x+l*Math.cos(angle),c.y+l*Math.sin(angle));angle=-Math.PI/4*1;l=round;var c2=createPt(c.x+l*Math.cos(angle),c.y+l*Math.sin(angle));angle=0;l=round*Math.sqrt(2);var c0=createPt(c.x+l*Math.cos(angle),c.y+l*Math.sin(angle));var d=createPt(center.x+r*Math.cos(Math.PI/2*3),center.y+r*Math.sin(Math.PI/2*3));angle=Math.PI/4*3;l=round;var d1=createPt(d.x+l*Math.cos(angle),d.y+l*Math.sin(angle));angle=Math.PI/4*1;l=round;var d2=createPt(d.x+l*Math.cos(angle),d.y+l*Math.sin(angle));angle=Math.PI/2;l=round*Math.sqrt(2);var d0=createPt(d.x+l*Math.cos(angle),d.y+l*Math.sin(angle));ctx.beginPath();ctx.moveTo(a1.x,a1.y);ctx.arc(a0.x,a0.y,round,-Math.PI/4,Math.PI/4,false);ctx.lineTo(a2.x,a2.y);ctx.lineTo(b1.x,b1.y);ctx.arc(b0.x,b0.y,round,Math.PI/4,Math.PI/4*3,false);ctx.lineTo(b2.x,b2.y);ctx.lineTo(c1.x,c1.y);ctx.arc(c0.x,c0.y,round,Math.PI/4*3,Math.PI/4*5,false);ctx.lineTo(c2.x,c2.y);ctx.lineTo(d1.x,d1.y);ctx.arc(d0.x,d0.y,round,Math.PI/4*5,-Math.PI/4*1,false);ctx.lineTo(d2.x,d2.y);ctx.closePath();
}/*----------------------------------------------------------
函数:用于绘制矩形
ctx:绘图上下文
x:矩形中心横坐标
y:矩形中心纵坐标
width:矩形宽
height:矩形高
----------------------------------------------------------*/
function drawRect(ctx,x,y,width,height){ctx.beginPath();ctx.moveTo(x-width/2,y-height/2);ctx.lineTo(x+width/2,y-height/2);ctx.lineTo(x+width/2,y+height/2);ctx.lineTo(x-width/2,y+height/2);ctx.closePath();
}/*----------------------------------------------------------
函数:用于绘制实心圆,用途是标记点以辅助作图
ctx:绘图上下文
x:矩形中心横坐标
y:矩形中心纵坐标
r:圆半径
color:填充圆的颜色
----------------------------------------------------------*/
function drawSolidCircle(ctx,x,y,r,color){ctx.fillStyle=color;ctx.beginPath();ctx.arc(x,y,r,0,Math.PI*2,false);ctx.closePath();ctx.fill();
}/*----------------------------------------------------------
函数:创建一个二维坐标点
x:横坐标
y:纵坐标
Pt即Point
----------------------------------------------------------*/
function createPt(x,y){var retval={};retval.x=x;retval.y=y;return retval;
}/*----------------------------------------------------------
函数:延时若干毫秒
milliseconds:毫秒数
----------------------------------------------------------*/
function sleep(milliSeconds) {const date = Date.now();let currDate = null;while (currDate - date < milliSeconds) {currDate = Date.now();} 
}/*----------------------------------------------------------
函数:书写文字
ctx:绘图上下文
x:横坐标
y:纵坐标
text:文字
font:字体
color:颜色
----------------------------------------------------------*/
function writeText(ctx,x,y,text,font,color){ctx.save();ctx.textBaseline="bottom";ctx.textAlign="center";ctx.font = font;ctx.fillStyle=color;ctx.fillText(text,x,y);ctx.restore();
}/*-------------------------------------------------------------
大明嘉靖年间,山西一珠宝商被人灭门全家,一仆人被屈打成招后斩首。
随后案情突变,经查真凶实为一流窜惯盗,其赃物里有不少来自被灭门珠宝商。
刑部特意挂牌督办此案,真凶被判凌迟,制造冤案者,包括县令在内六人
问斩,四人绞刑,七人被流放千里,
刑部发布公告,换仆人清白,并为其家人赐银六千两以抚恤。
这便是明朝对制造冤狱者的惩罚力度。
--------------------------------------------------------------*/
//-->
</script>

END

相关文章:

【Canvas与图标】乡土风金属铝边立方红黄底黑字图像处理图标

【成图】 120*120图标&#xff1a; 大小图&#xff1a; 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>金属铝边立方红黄底黑…...

【开源】A064—基于JAVA的民族婚纱预定系统的设计与实现

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看项目链接获取⬇️&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600个选题ex…...

C++实现一个经典计算器(逆波兰算法)附源码

1、本篇要实现的内容 最近&#xff0c;大家讨论计算器的实现比较热&#xff0c;今天我也来用C和Visual Studio实现一个计算器的小程序。这里使用逆波兰算法&#xff0c;能够根据当前用户输入的算式表达式字符串&#xff0c;计算出所要的结果&#xff0c;算式字符串可以包括加、…...

Python知识分享第二十二天-数据结构入门

数据结构 “”" 基础概念: 程序 数据结构 算法 数据结构 存储和组织数据的方式. 算法 解决问题的思维, 思路, 方式. 算法的特性:独立性: 算法 思维, 是解决问题的思路和方式, 不依赖语言.5大特性: 有输入, 有输出, 有穷性, 确定性, 可行性.问: 如何衡量算法的优劣?…...

【WRF理论第十三期】详细介绍 Registry 的作用、结构和内容

目录 1. Introduction&#xff1a;介绍 Registry 的作用和功能。2. Registry Contents&#xff1a;详细描述 Registry 的结构和内容&#xff0c;包括各个部分的条目类型。2.1. DIMSPEC ENTRIES&#xff08;维度规格条目&#xff09;2.2. STATE ENTRIES&#xff08;状态变量条目…...

Android启动优化指南

文章目录 前言一、启动分类与优化目标1、冷启动1.1 优化思路1.2 延迟初始化与按需加载1.3 并行加载与异步执行1.4 资源优化与懒加载1.5 内存优化与垃圾回收控制 2. 温启动2.1 优化应用的生命周期管理2.2 数据缓存与懒加载2.3 延迟渲染与视图优化 3. 热启动3.1 保持应用的状态3.…...

【ETCD】【源码阅读】configureClientListeners () 函数解析

逐步解析 configureClientListeners 函数 configureClientListeners 是 ETCD 的一个重要函数&#xff0c;用于配置客户端通信的监听器&#xff08;Client Listeners&#xff09;。这些监听器主要负责处理外部客户端与 ETCD 服务之间的通信&#xff0c;包括 HTTP 和 gRPC 请求。…...

IO进程学习笔记

man手册 普通命令。系统调用的函数。库函数。特殊文件。文件格式。游戏。附加的一些变量 IO介绍 I&#xff1a;input 输入 O&#xff1a;output 输出 对文件的输入和输出 输入-》写文件&#xff0c;将文件中的内容写到内存中去 输出-》读文件&#xff0c;将内存中的内容读取到文…...

智能手机回暖:华为点火,小米荣耀OV拱火

进入11月中下旬&#xff0c;智能手机圈再度热闹起来。包括华为、小米、OPPO、vivo等诸多手机厂商&#xff0c;都在陆续预热发布新机&#xff0c;其中就包括华为Mate 70、小米Redmi K80、vivo的S20&#xff0c;IQOO Neo10等热门新机&#xff0c;这些热门新机的集中上市迅速吸引了…...

Sqoop导入数据(mysql---->>hive)

目录 数据传输流程脚本报错和异常说明1. Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf2. 数据导入hive后显示NULL 数据传输流程 mysql---->>hdfs---->>hive 数据从mysql表中取出&#xff0c;放到hdfs上&#xff08;由targ…...

实验3-实时数据流处理-Flink

1.前期准备 &#xff08;1&#xff09;Flink基础环境安装 参考文章&#xff1a; 利用docker-compose来搭建flink集群-CSDN博客 显示为这样就成功了 &#xff08;2&#xff09;把docker&#xff0c;docker-compose&#xff0c;kafka集群安装配置好 参考文章&#xff1a; …...

深度学习实验十四 循环神经网络(1)——测试简单循环网络的记忆能力

目录 一、数据集构建 1.1数据集的构建函数 1.2加载数据集并划分 1.3 构建Dataset类 二、模型构建 2.1嵌入层 2.2SRN层 2.3模型汇总 三、模型训练 3.1 训练指定长度的数字预测模型 3.2 损失曲线展示 四、模型评价 五、修改 附完整可运行代码 实验大体步骤&#x…...

k8s部署odoo18(kubeshpere面板)

Postgresql部署 链接: kubesphere搭建 postgres15 因为我的是在另一台服务器使用kubesphere进行部署的&#xff0c;如果有和我一样情况的&#xff0c;可以参考上面的文档部署postgreasql。 注意事项&#xff1a; 因为odoo不允许使用postgresql的默认用户&#xff0c;也就是po…...

【模型对比】ChatGPT vs Kimi vs 文心一言那个更好用?数据详细解析,找出最适合你的AI辅助工具!

在这个人工智能迅猛发展的时代&#xff0c;AI聊天助手已经深入我们的工作与生活。你是否曾在选择使用ChatGPT、Kimi或是百度的文心一言时感到一头雾水&#xff1f;每款AI都有其独特的魅力与优势&#xff0c;那么&#xff0c;究竟哪一款AI聊天助手最适合你呢&#xff1f;本文将带…...

Java——容器(单例集合)(上)

一 容器介绍 容器&#xff0c;是用来容纳物体、管理物体。生活中,我们会用到各种各样的容器。如锅碗瓢盆、箱子和包等 程序中的“容器”也有类似的功能&#xff0c;用来容纳和管理数据。比如&#xff0c;如下新闻网站的新闻列表、教育网站的课程列表就是用“容器”来管理 视频…...

如何配置Github并在本地提交代码

前提: 可以流畅访问github, 需要一些上网技巧, 这就自行处理了 申请一个github账号 Github官网地址 首先就是邮箱注册啦, github没有对邮箱的限制, 只要是能收邮件的就ok, qq邮箱, 163等都可以使用. 然后和普通注册账号一样, 一路填写需要的信息, 验证邮箱即可. 如何新增代…...

工作bug,keil5编译器,理解int 类型函数返回值问题,详解!!!

编写不易&#xff0c;禁止搬运&#xff0c;仅供学习&#xff0c;感谢理解 问题现象 下面是一个在keil5里面写的一个&#xff0c;int类型的返回值函数&#xff0c;这个函数里面&#xff0c;只有if else if else这三个判断条件语句&#xff0c;正常来说任何情况下&#xff0c;…...

简明速通Java接口

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文从代码层面直接整理Java接口 让老油子们无需再理解繁杂的概念了。 Java接口在代码层面是做什么的 说白了老铁&#xff0c;Java的接口就是一个类&#xff0c;这个类中只能声明属性和方法&#xff0c;属性需要…...

MVC基础——市场管理系统(二)

文章目录 项目地址三、Produtcts的CRUD3.1 Products列表的展示页面(Read)3.1.1 给Product的Model里添加Category的属性3.1.2 View视图里展示Product List3.2 增加Product数据(Add)3.2.1 创建ViewModel用来组合多个Model3.2.2 在_ViewImposts里引入ViewModels3.2.3 添加Add的…...

java------------常用API preiod duration 计算时间差

1&#xff0c;preiod 如果末天数比初天数小&#xff0c;需要进一位 package API;import java.time.LocalDate; import java.time.Period;public class preiod {public static void main(String[] args) {// 计算时间差// LocalDate获取对象其中的一个方法LocalDate d1 LocalD…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...