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

Matlab绘制像素风字母颜色及透明度随机变化动画

本文是使用 Matlab 绘制像素风字母颜色及透明度随机变化动画的教程

实现效果

请添加图片描述

实现代码

如果需要更改为其他字母组合,在下面代码的基础上简单修改就可以使用。
步骤:(1) 定义字母形状;(2) 给出字母组合顺序;(3) 重新运行程序;

Matlab源文件代码也已经上传,下载链接就在文章头部的位置。
在这里插入图片描述

% 定义字母的形状
D_single = [1 1 1 0 0;1 0 0 1 0;1 0 0 0 1;1 0 0 0 1;1 0 0 0 1;1 0 0 1 0;1 1 1 0 0
];G_single = [0 1 1 1 0;1 0 0 0 1;1 0 0 0 0;1 0 1 1 1;1 0 0 0 1;1 0 0 0 1;0 1 1 1 1
];O_single = [0 1 1 1 0;1 0 0 0 1;1 0 0 0 1;1 0 0 0 1;1 0 0 0 1;1 0 0 0 1;0 1 1 1 0
];% 存储需要显示的字母形状的单元格数组
letters = {G_single, O_single, O_single, D_single};% 设置参数
blockSize = 10; % 每个方格的大小
rows = 7;       % 字母'A'的行数
cols = 5;       % 字母'A'的列数
numLetters = length(letters); % 插入的字母数量
extraCols = 10; % 额外增加的背景栅格列数
numFrames = 50; % 动画总帧数
fps = 3;        % 动画帧率
scaleFactor = 5;  % 窗口大小缩放系数,可调整以更好地控制窗口大小
gifFilename = 'animated_letters.gif'; % 输出的GIF文件名% 定义两个字母之间的间隔
spaceCols = 1;  % 间隔1列% 计算总列数
totalCols = numLetters * cols + (numLetters-1) * spaceCols + extraCols;  % 增加背景栅格的列数% 计算左右两侧额外的空列数,以居中字母
leftPadding = floor(extraCols / 2);
rightPadding = extraCols - leftPadding;% 初始化整个矩阵
A = zeros(rows, totalCols); % 初始化全为0的矩阵% 在矩阵中插入numLetters个字母,,并居中
% 如果n小于1,退出程序,并打印警告信息
if numLetters < 1disp('Warning: n must be greater than or equal to 1.');return;
endfor k = 1:numLetterssingleLetter = letters{k};colStart = leftPadding + (k - 1) * (cols + spaceCols) + 1;colEnd = leftPadding + (k - 1) * (cols + spaceCols) + cols;A(:, colStart:colEnd) = singleLetter;
end% 初始化图形窗口,设置合适的窗口大小
windowWidth = blockSize * totalCols * scaleFactor + 20;  % 绘图窗口宽度
windowHeight = blockSize * rows * scaleFactor + 20;      % 绘图窗口高度
figure('Units', 'pixels', 'Position', [100 100 windowWidth windowHeight]);
axis equal;
hold on;
axis off; % 隐藏坐标轴% 设置紧凑布局,移除边缘空白
set(gca, 'Units', 'normalized', 'Position', [0 0 1 1]);% 设置浅灰色背景
set(gca, 'Color', [0.9 0.9 0.9]);  % 0.9是浅灰色% 绘制浅色栅格背景
lightGrayColor = [0.8, 0.8, 0.8];  % 浅灰色
for i = 0:rowsy = i * blockSize;plot([0, totalCols * blockSize], [y, y], 'Color', lightGrayColor, 'LineWidth', 0.5); % 绘制横线
end
for j = 0:totalColsx = j * blockSize;plot([x, x], [0, rows * blockSize], 'Color', lightGrayColor, 'LineWidth', 0.5); % 绘制竖线
end% 创建矩形句柄数组
hRect = zeros(rows, totalCols);% 初始化矩形句柄和位置
for i = 1:rowsfor j = 1:totalColsif A(i, j) == 1x = (j - 1) * blockSize;y = (rows - i) * blockSize;hRect(i, j) = rectangle('Position', [x, y, blockSize, blockSize], ...'EdgeColor', 'w', 'LineWidth', 1);endend
end% 动画循环
for frame = 1:numFramesfor i = 1:rowsfor j = 1:totalColsif A(i, j) == 1% 随机生成新的颜色和透明度randomColor = rand(1, 3);randomAlpha = 0.5+ (1-0.5)*rand(); % 透明度在(0.5-1)之间变化% 更新方块的颜色和透明度set(hRect(i, j), 'FaceColor', randomColor,'FaceAlpha', randomAlpha);endendend% 捕获当前帧的图像frameImage = getframe(gcf);im = frame2im(frameImage); % 将帧转换为图像% 将图像写入GIF文件% 使用64种颜色而不是256种,以减小文件大小[imind, cm] = rgb2ind(im, 64);if frame == 1imwrite(imind, cm, gifFilename, 'gif', 'Loopcount', inf, 'DelayTime', 1/fps);elseimwrite(imind, cm, gifFilename, 'gif', 'WriteMode', 'append', 'DelayTime', 1/fps);end% pause(1/fps);  % 控制matlab中显示的帧率,和输出的gif图像一致
endhold off;

相关文章:

Matlab绘制像素风字母颜色及透明度随机变化动画

本文是使用 Matlab 绘制像素风字母颜色及透明度随机变化动画的教程 实现效果 实现代码 如果需要更改为其他字母组合&#xff0c;在下面代码的基础上简单修改就可以使用。 步骤&#xff1a;(1) 定义字母形状&#xff1b;(2) 给出字母组合顺序&#xff1b;(3) 重新运行程序&#…...

C:每日一题:二分查找

1、知识介绍&#xff1a; 1.1 概念&#xff1a; 二分查找是一种在有序数组中查找某一特定元素的搜索算法 1.2 基本思想&#xff1a; 每次将待查找的范围缩小一半&#xff0c;通过比较中间元素与目标元素的大小&#xff0c;来决定是在左半部分还是右半部分继续查找。 举个生…...

python Django中使用ORM进行分组统计并降序排列

python Django中使用ORM进行分组统计并降序排列 # 使用supplier和Count进行分组统计,其中supplier为MyModel的一个字段 supplier_counts MyModel.objects.values(supplier).annotate(countCount(supplier)).order_by(-count) # 输出统计结果 for supplier_count in supplier_…...

QT C++ 编写modbus 总结

[开源库的使用]libModbus编译及使用_libmodbus库-CSDN博客 libmodbus的下载与编译_modbus库文件下载-CSDN博客 【QT5】解决 QT 界面中文显示乱码问题_qt5输出中文乱码解决方法-CSDN博客 Qt&#xff1a;解决qt修改完ui文件起不到作用_qt ui文件修改后不生效-CSDN博客...

基于SpringBoot的网络海鲜市场系统的设计与实现

TOC springboot219基于SpringBoot的网络海鲜市场系统的设计与实现 绪论 1.1 选题背景 当人们发现随着生产规模的不断扩大&#xff0c;人为计算方面才是一个巨大的短板&#xff0c;所以发明了各种计算设备&#xff0c;从结绳记事&#xff0c;到算筹&#xff0c;以及算盘&…...

c#相关基础知识

c#参数4种种别 值参&#xff1a;像Java的正常数据的传输 ref&#xff1a;对参数的指向是参数本身的地址&#xff0c;而不是数据的副本&#xff0c;所以可以对数据进行直接操作 out: 绑定控件&#xff0c;控件传输值赋值给类中的内部类 待定...

注意力机制 — 它是什么以及它是如何工作的

一、说明 注意力机制是深度学习领域的一个突破。它们帮助模型专注于数据的重要部分&#xff0c;并提高语言处理和计算机视觉等任务的理解和性能。这篇文章将深入探讨深度学习中注意力的基础知识&#xff0c;并展示其背后的主要思想。 二、注意力机制回顾 在我们谈论注意力之前&…...

学习嵌入式第二十六天

进程线程 1.进程的概念 2.进程 和 程序 硬盘中程序 &#xff0c;加载到内存中&#xff0c;运行起来&#xff0c;就是进程 创建线程 pthread_create posix thread create 线程执行 ---体现在线程执行函数 (回调函数) 线程退出 ---pthread_exit() …...

speech语音audio音频

在信号处理和语言技术领域&#xff0c;speech 和 audio 是两个相关但不同的概念。它们有各自的定义和应用场景。以下是对这两个术语的详细解释&#xff1a; 1. Speech&#xff08;语音&#xff09; Speech 主要指的是人类说话时产生的声音。它是人类语言交流的一种主要形式&a…...

最常用的正则表达式规则和语法

正则表达式(Regular Expression,简称 regex)是一种用于匹配字符串的强大工具。它使用特定的语法规则来定义字符串模式,可以用来搜索、替换、验证字符串等。以下是一些常用的正则表达式规则和语法: 1. 基本字符匹配 . :匹配任意单个字符(除了换行符)。 示例:a.c 可以匹…...

Datawhale X 魔搭 AI夏令营第四期-魔搭生图task1学习笔记

根据教程提供的链接&#xff0c;进入相应文章了解魔搭生图的主要工作是通过对大量图片的训练&#xff0c;生成自己的模型&#xff0c;然后使用不同的正向、反向提示词使模型输出对应的图片 1.官方跑baseline教程链接:Task 1 从零入门AI生图原理&实践 2.简单列举一下赛事的…...

WPF中XAML相对路径表示方法

在WPF XAML中&#xff0c;相对路径是一种非常实用的方式来引用资源文件&#xff0c;如图像、样式表和其他XAML文件。相对路径可以帮助您构建更加灵活和可移植的应用程序&#xff0c;因为它允许资源文件的位置相对于XAML文件的位置进行定位。 相对路径的表示方法 在XAML中&…...

操作系统内存管理技术详解

操作系统内存管理技术详解&#xff1a;第一部分 引言 操作系统作为计算机系统的核心组件&#xff0c;负责管理硬件资源、提供用户接口和运行应用程序。在操作系统的众多功能中&#xff0c;内存管理无疑是最为关键的技术之一。本文将深入探讨操作系统内存管理的背后技术&…...

python之numpy(2 创建矩阵)

numpy创建矩阵 前面提到&#xff0c;numpy主要是针对数组和矩阵的操作。下面我们分别创建数组和矩阵。 import numpy as np x0np.array([1,2,3,4]) x1np.array([[1,2,3,4],[1,2,3,4]]) print(x0,x1,sep\n) 在numpy中&#xff0c;使用array创建数组和矩阵。其中&#xff0c;创…...

git stage 和 git unstage

无意间遇到 git stage 和 git unstage&#xff0c;感觉有点陌生&#xff0c;简单了解一下这两个概念。 在 Git 中&#xff0c;stage 和 unstage 是与暂存区操作相关的术语&#xff0c;它们用于管理文件的状态&#xff0c;决定哪些更改会在下次的提交中。 1. git stage git s…...

C#使用反射和特性的优缺点

使用反射&#xff08;Reflection&#xff09;和特性&#xff08;Attributes&#xff09;在C#中有其特定的应用场景&#xff0c;同时也带来了一些优缺点&#xff1a; 反射的优点&#xff1a; 动态性&#xff1a;反射允许程序在运行时查询和操作对象的类型信息&#xff0c;提供…...

C语言:字符串函数strcat

该函数用于字符串拼接。 使用方法如下&#xff1a; #include<stdio.h> #include<string.h>int main() {char str[20] "abcd";char str1[] "1234";//strcat(str,str1);//不安全&#xff0c;所以用strcat_sstrcat_s(str, 20, str1);printf(&…...

haproxy总结与实验

一、负载均衡 1.1 简述负载均衡 在高并发的业务场景下&#xff0c;解决单个节点压力过大&#xff0c;导致Web服务响应过慢&#xff0c;特别是严重的情况下导致服务瘫痪&#xff0c;无法正常提供服务的问题&#xff0c;而负载均衡的目的就是为了维护系统稳定可靠。负载均衡&…...

VS实用调试技巧(程序员的必备技能)

调试的重要性 在我们写代码的时候&#xff0c;如果程序出现了bug&#xff0c;那么下一步就是找到bug并修复bug!而这个找问题的过程就被称为调试&#xff08;英文叫debug&#xff0c;消灭bug的意思&#xff09;。 调试能观察到程序内部执行的细节&#xff0c;可以增加程序员对…...

怎样卸载python

python卸载干净的具体操作步骤如下&#xff1a; 1、首先打开电脑左下角开始菜单&#xff0c;点击“运行”选项&#xff0c;输入“cmd”。 2、输入“python --version”&#xff0c;得到一个程序的版本&#xff0c;按回车键。 3、点击下图程序。 4、然后在该页面中点击“uninst…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

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

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

API网关Kong的鉴权与限流:高并发场景下的核心实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中&#xff0c;API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关&#xff0c;Kong凭借其插件化架构…...

软件工程 期末复习

瀑布模型&#xff1a;计划 螺旋模型&#xff1a;风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合&#xff1a;模块内部功能紧密 模块之间依赖程度小 高内聚&#xff1a;指的是一个模块内部的功能应该紧密相关。换句话说&#xff0c;一个模块应当只实现单一的功能…...