数据类设计_图片类设计之5_不规则类图形混合算法(前端架构)

 前言

        学的东西多了,要想办法用出来.C和C++是偏向底层的语言,直接与数据打交道.尝试做一些和数据方面相关的内容

引入

        接续上一篇,讨论图片类型设计出来后在场景中如何表达,以及不规则图片的混合算法.

图片示意图

        图片是怎样表示的,这里把前面的补上

 这里的数字1是不规则数据类对象,他被假设左上角有个基点,代表了两个隐藏属性:x坐标和y坐标的原点.对于其他的数据类对象:如矩阵类Matrix对象和Fillet_Matrix对象也有.总的来说,只要是图形类对象,都有这两个隐藏属性.

混合算法---不规则图形

        和前面一样,背景为一个矩阵类对象.前景是字符类对象         

 
//字符图形类定义
struct Zifu{vector<Zifu_point> zps;
}
//字符点类定义
struct Zifu_point{short x_cord;    //x坐标,相对于基点的x值short y_cord;    //y坐标,相对于基点的y值
}//字符对象混合到矩阵对象中
Matrix& mix_zifu(short x_ref,short y_ref,Matrix& mx,Zifu& zf){//在矩阵对象中定位字符对象的基准行vector<vector<Reg_Point>>::iterator itmx=mx.matrix.begin()+x_ref;//下面这行不要这样写:定位基准点需要先进行行偏移//vector<Reg_Point>::iterator itmxs=(*itmx).begin()+y_ref;//遍历图形中的每个点,将其写入矩阵.for(itzf=zf.zps.begin();itzf!=zf.zps.end();itzf++){//找到矩阵中对应的行itmx=itmx+(*itzf).x_cord;//找到行中对应的点itmxs=(*itmx).begin()+y_ref+(*itzf).y_cord;//点写入黑色,rgb等于3个0(*itmxs).red=0;(*itmxs).green=0;(*itmxs).blue=0;}return mx;
}

说明:

        1.代码中有一些假设:矩阵大小必须大于字体大小,这个由传入参数所控制.

        2.字符图形类只包含x坐标和y坐标,矩阵类对象采用白色打底,写进去的点统一成黑色.

        也就是说首先得生成一个Matrix对象如下:

//生成长20,高100,颜色为白色的矩阵对象
Matrix matrix(20,100,255,255,255);  //3个255表示白色

        假设字符基点和矩阵基点重合,调用以下函数即可生成图形:

//假设zf1是传入的字符对象,数字"1"的点集合,他可能来自数据库,可能来自文件
mix_zifu(0,0,matrix,zf1);    

注意:如果想输入的字符有颜色,可以修改函数定义,把颜色作为形参定义进去;传参时传入颜色值. 

小结 

        字符类有些特殊,未定义颜色,定义了坐标.规则图形类里定义了颜色,未定义坐标.两者稍有不同.

预告

       任意图形类型建立

鸣谢

        笔者另一篇帖子数据在硬件和软件中的表示-CSDN博客里有求下载链接,如果您感觉有所帮助,请帮忙点击,下载,提高等级

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

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

相关文章

【C++】 —— 笔试刷题day_4

刷题day_4 继续加油&#xff01;&#xff01;&#xff01; 一、Fibonacci数列 题目链接&#xff1a;Fibonacci数列 题目解析 题目要求&#xff0c;输入一个数N&#xff0c;我们可以对N进行1/-1操作&#xff1b;题目让我们输出对N进行至少多少步可以变成Fibonacci数。 这里题目…

“Ubuntu禁止root用户通过SSH直接登录”问题的解决

目录 1 前言 2 问题的解决 2.1 修改sshd_config文件 2.2 重启 SSH 服务 1 前言 最近在做毕设的时候&#xff0c;由于使用普通用户&#xff0c;在MobaXterm的图形界面上&#xff0c;无法正常查看/root文件夹内容&#xff0c;如下图所示&#xff1a; 于是我就想直接想用oot…

MySql数据库等级考试学习分享3(Day5)

题目:机器周期的同步标准是( )。 选项: A. CPU执行指令所占用的时间 B. CPU访问存储器一次所需要的时间 C. CPU分析指令所需要的时间 D. CPU访问寄存器一次所需要的时间 知识点总结(0基础必看) 1. 计算机时序的基本单位 单位定义关系时钟周期(Clock Cycle)CPU主频的倒…

Unity 封装一个依赖于MonoBehaviour的计时器(下) 链式调用

[Unity] 封装一个依赖于MonoBehaviour的计时器(上)-CSDN博客 目录 1.加入等待间隔时间"永远执行方法 2.修改为支持链式调用 实现链式调用 管理"链式"调度顺序 3.测试 即时方法​编辑 "永久"方法 链式调用 ​4.总结 1.加入等待间隔时间&qu…

文件解析漏洞靶场集锦详解

一、IIS解析漏洞 环境安装&#xff1a;windows2003iis6 1.目录解析 .asp文件夹中的任意文件都会被当做asp文件去执行 1.在iis6的网站根目录新建⼀个名为1.asp的文件 2. 在1.asp中新建⼀个jpg文件。内容为 <%now()%>asp代码 3.在外部浏览器中访问iis⽹站中的1.jpg 发现…

零售业务订单处理自动化:吉客云对接金蝶云星空

销售单对接销售出库_类型1零售业务_合并&#xff1a;吉客云奇门数据集成到金蝶云星空 在现代零售业务中&#xff0c;数据的高效流转和准确处理是企业运营的关键。本文将分享一个实际案例&#xff0c;展示如何通过轻易云数据集成平台&#xff0c;将吉客云奇门的数据无缝对接到金…

python-leetcode-子数组最大平均数 I

643. 子数组最大平均数 I - 力扣&#xff08;LeetCode&#xff09; 可以使用滑动窗口&#xff08;Sliding Window&#xff09;的方法来解决这个问题。具体步骤如下&#xff1a; 先计算数组 nums 中前 k 个元素的和 sum_k&#xff0c;作为初始窗口的和。然后滑动窗口&#xff0…

「 机器人 」扑翼飞行器通过总气动力控制四自由度运动方法

一、前言 在扑翼飞行中,总气动力(Total Aerodynamic Force)是指扑翼在运动过程中受到的所有空气动力作用的合力。它是由以下两种主要力的合成结果: 1. 升力(Lift, ):垂直于空气流方向的力,用于支持飞行器(或生物)的重量。 2. 阻力(Drag, ):平行于空气流方向的力,…

【C语言系列】字符函数和字符串函数

字符函数和字符串函数 一、字符分类函数二、字符转换函数三、strlen的使用和模拟实现3.1strlen函数3.2strlen函数模拟实现 四、strcpy的使用和模拟实现4.1strcpy函数4.2strcpy函数的模拟实现 五、strcat的使用和模拟实现5.1strcat函数5.2strcat函数的模拟实现 六、strcmp的使用…

飞鸟与鱼不同路

看&#xff0c;好美的太阳。 嘿嘿&#xff0c;今天我提出辞去综合教研室主任一职&#xff0c;不想在这个管理上废时间啦~ 把时间用来考试.........用来做自己的事情。 哈哈哈哈~

AI本地部署

文档加载&#xff08;Document Loading&#xff09;&#xff1a;从多种不同来源加载文档。LangChain提供了100多种不同的文档加载器&#xff0c;包括PDF在内的非结构化的数据、SQL在内的结构化的数据&#xff0c;以及Python、Java之类的代码等​ •文本分割&#xff08;Splitti…

计算机视觉算法实战——驾驶员分心检测(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​ 1. 领域简介&#xff1a;驾驶员分心检测的意义与挑战 驾驶员分心检测是智能驾驶安全领域的重要研究方向。据统计&#xff0c;全球每…

2025因果机器学习好中高区idea汇总

机器学习变天了&#xff01;近来因果机器学习大热&#xff0c;这便意味着机器学习已经从“预测”向“理解”的范式转变。同时&#xff0c;这也是我们发论文、找创新的好时机。 因果机器学习可谓是&#xff0c;提高模型决策科学性和可靠性的“仙丹”&#xff01;其核心就在于&a…

Linux笔记---文件系统硬件部分

1. 文件系统 文件系统是操作系统用于明确存储设备&#xff08;常见的是磁盘&#xff0c;也有基于NAND Flash的固态硬盘&#xff09;或分区上的文件的方法和数据结构&#xff0c;即在存储设备上组织文件的方法。 1.1 基本组成 索引节点&#xff08;inode&#xff09;&#xff…

AutoSar架构-----XCP模块与协议介绍

1、XCP 模块定义 XCP 一般要求如下图&#xff1a; XCP 导入的类型需要如下表这些头文件&#xff1a; 2、ETAS 工具配置 2.1、XcpGeneral 配置 3、XCP 协议 ASAM-MCD-1MC&#xff1a;ECU 和标定测量系统接口 ASAM-MCD-2MC&#xff1a;即 A2L 文件&#xff0c;是控制器内部信息…

江科大51单片机笔记【10】DS1302时钟可调时钟(下)

写在前言 此为博主自学江科大51单片机&#xff08;B站&#xff09;的笔记&#xff0c;方便后续重温知识 在后面的章节中&#xff0c;为了防止篇幅过长和易于查找&#xff0c;我把一个小节分成两部分来发&#xff0c;上章节主要是关于本节课的硬件介绍、电路图、原理图等理论知识…

字节流 InputStream/OutputStream

一、java的I/O java的I/O(输入/输出)流是用于处理数据输入和输出的抽象类。 java的I/O流主要分为两大类&#xff0c;字节流跟字符流。 字节流&#xff1a;用于处理二进制数据&#xff0c;包括InputStream和OutputStream两个主要类及其子类。 字符流&#xff1a;用于处理字符…

使用位运算如何找到数组中只出现一次的数?

题目链接&#xff1a;137. 只出现一次的数字 II - 力扣&#xff08;LeetCode&#xff09; 算法解析 位运算是用于二进制的运算符号。而对于多次出现的数字&#xff0c;其二进制都是一模一样的&#xff0c;这里是3次重复的出现是数字。由此我们可以想到&#xff0c;如果我们由低…

最节省服务器,手搓电子证书查询系统

用户预算150元&#xff0c;想要一个最简单证书查询系统。前台能查询证书、后台管理员能登录能修改密码&#xff0c;证书能够手动输入修改删除、批量导入导出删除数据、查询搜索。能够兼容苹果、安卓、PC三端浏览器&#xff0c;最后帮忙部署到云服务器上。 用户预算不多&#xf…

.net 6程序在IIS中部署后点击IIS设置报错“执行此操作时出错”

.net 6写的程序&#xff0c;需要在Windows服务器的IIS中部署&#xff0c;由于是刚装的系统&#xff0c;先安装.net 6运行时&#xff0c;装了才发现没有IIS&#xff0c;于是又通过“添加角色和功能”添加与IIS相关的功能。安装完毕后&#xff0c;在IIS中添加网站&#xff0c;并将…