数据类设计_图片类设计之3_半规则图类设计(前端架构基础)

前言

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

引入

         接续上一篇讨论半规则图类型的设计

半规则图的定义

        什么是半规则图?笔者看见了一些似乎规则又不是太规则的图形,例如带圆角的矩阵,在页面上找一个圆角框

为了看得清楚一点,自己画一个类似圆角矩阵的形状,win10搜索栏输入mspaint,打开自带画图软件,画一个下面的形状,并填充.

        在计算机中是如何表示的呢?尝试给出定义.

        `思考:类型定义也不是唯一的,找一种比较简洁的.圆角矩形和之前的矩阵类看起来也差不多,所以借鉴一下,用点的二维数组去定义(没错vector<vector<Reg_point>>这个类型还能用,他表示点集合的集合,但算法上有区别)其中需要包括圆角r的半径.

//圆角矩阵定义
struct Fillet_Matrix : public Reg_pic {short length;                             //表示长度的点个数short height;                             //表示高度的点个数short red;short green;short blue;short radius;                             //圆角半径vector<vector<Reg_point>> fillet_matrix;  //圆角矩阵,点的二维数组Fillet_Matrix(short Length, short Height, short Red,short Green, short Blue,short Radius) //构造函数{vector<Reg_point> tmp;                //临时容器for (short i = 0; i < Radius; i++)    //第一段:半径小于高度for (short j = 0; j < length-2*Radius+2*i; j++){tmp.push_back(Reg_point{ Red,Green,Blue });}fillet_matrix.push_back(tmp);         //临时容器内容添加到矩阵对象for(short i=Radius;i<Height-Radius;i++)//第二段和矩阵一致for(short j=0; j<length;j++){tmp.push_back(Reg_point{ Red,Green,Blue });}fillet_matrix.push_back(tmp);         //临时容器内容添加到矩阵对象for (short i =Height-Radius; i < Height; i++)    //第三段:从高度减去已扫描高度小于半径for (short j = 0; j < length-2*Radius+2*(Height-i-1); j++){tmp.push_back(Reg_point{ Red,Green,Blue });}fillet_matrix.push_back(tmp);         //临时容器内容添加到矩阵对象}
};

问题(必须解决的)

        代码写完后再读,发现他保证了从上向下扫描时每行点数的规律,比如第一行和最后一行的点个数是length-2*Radius,但他们的位置并未说明,也就是倒圆角的效果还没有.最初的设计保证个大概,在具体场景表示时再写函数来说明.

一点小惊喜

        笔者本来想再写一个跑道型图片类型,跑道型图片大概是这样:

        

        这里面有3个跑道型图片(看出网页元素上用得比较多).

        本来想单独设计一个跑到类图片的类型,说明两个类型之间可能属性一致但效果不同.现在看来不用那么麻烦了,用圆角矩阵一样可以表示,只要输入的圆角半径等于高度的一半就可以了

//生成一个跑道型图片
//长度1000,高度500,半径250的半圆形跑道图片,全黑色
Fillet_Matrix Semi-circular_runway(1000,500,0,0,0,250);  

小结

        半规则图形是一个抛砖引玉的思路.常常看看有人问:编程和数学有没有关系?如果写应用,用别人框架里写的算法,那关系不大,编程把逻辑表达清楚就可以了.程序和数学有关系的在底层,比如数据表达方面和其他笔者不知道的领域例如编译器,进程调度算法等.

        这段属于闲聊:过去听人说数学专业转程序员较为容易,数学本身就挺抽象,他是将逻辑具体化的学科.写算法的人数学有一定要求.比如画图软件中的"样条曲线",查了一下贝塞尔曲线.写一个贝塞尔曲线的类型,就可以实现样条曲线的效果.所以程序研发里会不会有前端算法工程师这个岗位,专门写图形或者建立3D模型吗?笔者感觉这属于计算机图形学范畴,和编程不大相关,有知道的可以私信笔者,谢谢.

预告

        图片类型设计出来后,在场景中如何表达,以及图片的混合算法

鸣谢

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

        

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

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

相关文章

Qt 信号与槽机制

1. 信号 和 槽 Qt 信号与槽机制 是一种用于对象间通信的低耦合设计模式&#xff0c;核心思想是&#xff1a;当某个信号触发&#xff0c;自动调用预先关联的处理函数&#xff08;槽函数&#xff09;。 在 Qt 中&#xff0c;如果一个类需要使用信号与槽机制&#xff0c;则该类必…

实验8 搜索技术

实验8 搜索技术 一、实验目的 &#xff08;1&#xff09;掌握搜索技术的相关理论&#xff0c;能根据实际情况选取合适的搜索方法&#xff1b; &#xff08;2&#xff09;进一步熟悉盲目搜索技术&#xff0c;掌握其在搜索过程中的优缺点&#xff1b; &#xff08;3&#xff09;…

区块链知识点2

1.用非对称加密方式传输对称加密的密钥 2.数字签名&#xff1a;私钥加密&#xff0c;公钥解密 3.RSA由于计算较大&#xff0c;通常用于数字签名和密钥交换&#xff0c;而非直接的数据加密。 4.签名过程 发送方A将消息用Hash算法产生一个消息摘要(Message Digest) 发…

消费级显卡上ollama部署QwQ32B

ollama部署QwQ32B QwQ32B硬件要求 魔改2080ti 的 22G 显存差不多够用 ollama中的是Q4_K_M量化模型 硬件配置模型推理模型高效微调模型全量微调显存占用最低配置显存占用最低配置显存占用最低配置FP_1664GRTX3090&#xff0a;4&#xff08;94G&#xff09;92GRTX3090&#xff0a…

万字长文详解嵌入式电机软件开发

目录 第一章:嵌入式电机概述 1.1 电机类型:选对 “主角” 有多重要? 1.2 嵌入式系统特点:硬件的 “灵魂” 靠什么支撑? 第二章:开发环境搭建 2.1 硬件平台选择:给 “大脑” 找个好载体 2.1.1 ARM Cortex 系列:全能选手 2.1.2 AVR 微控制器:简约而不简单 2.1.3 …

python-54-使用环境变量库python-dotenv进行应用程序配置参数的管理

文章目录 1 python-dotenv简介1.1 十二因素原则1.1.1 引言1.1.2 背景1.1.3 十二因素1.2 python-dotenv概述2 python-dotenv应用2.1 文件.env2.2 方式一load_dotenv()2.3 方式二dotenv_values()2.4 指定配置文件路径3 Flask结合dotenv3.1 Flask的config3.2 结合使用4 代码中的配…

How to introduce a new product in English?

How to introduce a new product in English? References Introducing a new product Forever: Yeah, sure. Today I am glad to announce [əˈnaʊns] that our new App has made it through the final testing stage. The name of the new App is on-device Stable Diffus…

数字电路 | 触发器 / 单稳态触发器 / 双稳态触发器

注&#xff1a;本文为 “数字电路 | 触发器” 相关文章合辑。 如有内容异常&#xff0c;请看原文。 未整理。 数字电路基础 — 触发器 Oliver-H 已于 2024-04-07 15:06:25 修改 触发器&#xff08;Flip-Flop&#xff09; 也是数字电路中的一种具有记忆功能的逻辑元件。触发…

SSM基础专项复习5——Maven私服搭建(2)

系列文章 1、SSM基础专项复习1——SSM项目整合-CSDN博客 2、SSM基础专项复习2——Spring 框架&#xff08;1&#xff09;-CSDN博客 3、SSM基础专项复习3——Spring框架&#xff08;2&#xff09;-CSDN博客 4、SSM基础专项复习4——Maven项目管理工具&#xff08;1&#xff…

【Java 基础(人话版)】进制转换

进制的简单介绍 整数可以使用四种不同的进制表示方式&#xff1a; 二进制 (Binary)&#xff1a;由 0 和 1 组成&#xff0c;满 2 进 1&#xff0c;以 0b 或 0B 开头表示。十进制 (Decimal)&#xff1a;由 0-9 组成&#xff0c;满 10 进 1&#xff0c;是最常用的数值表示方式。…

11.anaconda中的jupyter使用、及整合dataspell

目录 概述jupyterjupyter notebook1.生成配置文件修改notebook保存目录问题问题2&#xff0c;无法获取token 安装 DataSpell注意配置运行环境DataSpell 使用 概述 前置安装如有问题&#xff1a; 1.Python、anaconda介绍、安装及使用 jupyter jupyter notebook 1.生成配置文…

蓝桥杯 之 回溯之充分剪枝

文章目录 买瓜最大数字 在蓝桥杯当中&#xff0c;对于回溯是属于一个必考的问题&#xff0c;但是除了回溯的几个基本的问题&#xff0c;如果通过剪枝来提前删去无效的分支&#xff0c;以大大减少时间复杂度是需要我们进一步思考的问题&#xff01;回溯的基本问题&#xff1a; 回…

【春招笔试】2025.03.13-蚂蚁春招笔试题

题目总结 题目一:区间未出现的最小值之和 1️⃣:统计全为1的子数组数量和全为0的子数组数量,利用公式计算 2️⃣:利用数学公式 n(n+1) - 2N0 - N1 计算最终答案 难度:中等 这道题目的关键在于理解 mex 的概念,并发现对于只含 0 和 1 的数组,mex 值只可能是 0、1 或 2。…

iOS 模块化架构设计:主流方案与实现详解

随着 iOS 工程规模的扩大&#xff0c;模块化设计成为提升代码可维护性、团队协作效率和开发灵活性的关键。本文将探讨为什么需要模块化&#xff0c;介绍四种主流的模块化架构方案&#xff08;协议抽象、依赖注入、路由机制和事件总线&#xff09;&#xff0c;并通过代码示例和对…

太速科技-636-基于FMC的Kintex XCKU060高性能PCIe载板

基于FMC的Kintex XCKU060高性能PCIe载板 一、板卡概述 板卡主控芯片采用Xilinx 公司的 Kintex UltraScale系列FPGA XCKU060-2FFVA1156。板载 2 组 64bit 的DDR4 SDRAM&#xff0c;每组容量2GB&#xff0c;可稳定运行在2400MT/s。支持PCIE Gen3 x8模式及一路FMC HPC接口。同…

【Spring Cloud】 核心组件全解析与 2024 【微服务框架】选型指南

《Spring Cloud 核心组件全解析与 2024 微服务框架选型指南》 第一部分&#xff1a;Spring Cloud 核心组件及功能速查表 组件名称核心功能一句话总结详细功能说明Eureka服务注册与发现的“通讯录”Server存储服务节点信息&#xff0c;Client自动注册和拉取列表&#xff0c;实现…

SAP SD学习笔记31 - 销售BOM

上一篇讲 前受金处理(预付款处理)。 SAP SD学习笔记29 - 前受金处理(预收款处理)_fplt 付款申请与sd 数据表的关联关系-CSDN博客 本章继续讲SAP SD模块的其他知识&#xff1a;销售BOM。 销售BOM在现场还是会用到的。 目录 1&#xff0c;销售BOM概要 2&#xff0c;受注BOM的…

动态路径规划——01背包问题讲解和通过滚动数组优化

如果没有动态路径规划基础的兄弟可以出去了&#xff0c;这个题目有两个问题 第一问讲解&#xff1a; 1.定义状态表示 刚开始我做的时候根据我的经验定义了一个状态表示dp[i]表示从1到i个物品中选择的最大价值&#xff0c;但是这个状态表示有一个明显的问题&#xff0c;我怎么知…

Java程序的逻辑控制

目录 1、顺序结构2、分支结构2.1、if 语句2.2、switch 语句 3、循环结构3.1、while 语句3.2、break3.3、continue3.4、for 循环3.5、do while 语句 1、顺序结构 顺序结构比较简单&#xff0c;按照代码书写的顺序一行一行执行。如果调整代码的书写顺序, 则执行顺序也发生变化。…

【鸿蒙开发】Hi3861学习笔记- GPIO之LED

00. 目录 文章目录 00. 目录01. GPIO概述02. 硬件设计03. 软件设计04. 实验现象05. 附录 01. GPIO概述 GPIO&#xff08;General-purpose input/output&#xff09;即通用型输入输出。通常&#xff0c;GPIO控制器通过分组的方式管理所有GPIO管脚&#xff0c;每组GPIO有一个或多…