painter

AirPods Pro 来了

本秂侑毒 提交于 2021-02-20 12:57:02
AirPods Pro 来了 展开 //--> 本文分享自微信公众号 - 骇客与画家(hacker-and-painter)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“ OSC源创计划 ”,欢迎正在阅读的你也加入,一起分享。 来源: oschina 链接: https://my.oschina.net/u/3861898/blog/4405461

Go编程模式:委托和反转控制

混江龙づ霸主 提交于 2021-02-13 18:38:16
反转控制 IoC – Inversion of Control 是一种软件设计的方法,其主要的思想是把控制逻辑与业务逻辑分享,不要在业务逻辑里写控制逻辑,这样会让控制逻辑依赖于业务逻辑,而是反过来,让业务逻辑依赖控制逻辑。在《 IoC/DIP其实是一种管理思想 》中的那个开关和电灯的示例一样,开关是控制逻辑,电器是业务逻辑,不要在电器中实现开关,而是把开关抽象成一种协议,让电器都依赖之。这样的编程方式可以有效的降低程序复杂度,并提升代码重用。 本文是全系列中第4 / 9篇: Go编程模式 Go编程模式:切片,接口,时间和性能 Go 编程模式:错误处理 Go 编程模式:Functional Options Go编程模式:委托和反转控制 Go编程模式:Map-Reduce Go 编程模式:Go Generation Go编程模式:修饰器 Go编程模式:Pipeline Go 编程模式:k8s Visitor 模式 « 上一篇文章 下一篇文章 » 面向对象的设计模式这里不提了,我们来看看Go语言使用Embed结构的一个示例。 目录 嵌入和委托 结构体嵌入 方法重写 嵌入结构多态 反转控制 实现Undo功能 反转依赖 嵌入和委托 结构体嵌入 在Go语言中,我们可以很方便的把一个结构体给嵌到另一个结构体中。如下所示: type Widget struct { X, Y int } type

来啦!Behance 2021年度设计趋势出炉

萝らか妹 提交于 2021-01-02 06:56:33
静电说:今天特别献上静Design翻译小组三位同学为大家带来的Behance 2021年度设计趋势。说到设计趋势,大家一定不会陌生,如何看待设计趋势,则是一个需要思考的问题。也许你已经看了两三年的设计趋势了,那么有没有感受到这些趋势背后所表达的含义呢? 一般来说,设计趋势是一个相对宏观的现象表达,但这些趋势却在潜移默化的影响着每个人,因此,不要神化设计趋势,也不能压根不注重趋势,否则你会落伍。在跟随趋势的过程中加入自己的思考,形成属于自己的风格,是我们各位设计师小伙伴最应该做的事情。 点击这里阅读 [译文]重磅!Behance官方最全2020设计趋势 在新冠疫情造成大流行和隔离的数月之后,我们对2021年充满了希望,同时也保持谨慎的乐观。 在这样一个值得记忆的年份中,2020年的设计趋势好像并没有太大变化,这一趋势将在2021年继续占据主导地位,某些趋势受到了新冠疫情的影响,会持续发展,但进度可能会慢下来。 在2020年的第三季度,这些影响力逐渐显现出来,并会对新的2021年产生影响。即使从2020年开始的大多数趋势仍然将继续影响明年的设计领域,我们也将尝试探索2021年会出现的新萌芽。 2021年设计趋势 3D绝对是2021年的趋势,因为在设计的所有分支中都可以找到它,它的新颖之处在于,这种技术已经开始在UI中使用,在之前,UI一直被平面设计所主导,但是现在,3D的采用越来越频繁

图形学 遮挡剔除算法综述

血红的双手。 提交于 2020-12-29 17:49:58
1. Hidden Line Removal (HLR) 在光栅化的文章中,我们使用Z-Buffer来判断三角形面片是否遮挡,但Z-Buffer不适用于纯线框的模型的遮挡剔除。原因如下。 就如同上图左侧,在A点的位置,左侧的三角形由于只画边不画面,所以A点它是不画的,所以就没有Z值来与右侧的三角形的A点的Z值做比较,因此就没法判断A点是谁在前谁在后。 HLR算法总结 Raycasting(光线投射) 算出每条光线在屏幕上某个像素点上的交点位置 在该像素点上只保留最近的交点 Painter’s Algorithm(画家算法) 简单粗暴,先画后面的物体,后画前面的物体,就像画画一样,后涂的颜色会覆盖掉先涂的颜色。 比较两个物体,当前视角来看,如果A的点全都在B的点前面,那么先画B再画A 但缺点也很明显: 1)如果A的点不全的B的前面,即A有些点从当前视角看是在B的某些点后面,就会失败。 2)物体之间有相交的面时,会失败。 (好像飞机的雷达显示是用的这个算法?) Warnock Algorithm (沃诺克算法) 核心:分而治之 不停的四分屏幕(一般是四分,也可以二分或者其他分),直到被细分的子空间只存在简单的前后关系(就是画家算法的那个要求),或者子空间已经细分到了一个像素点的大小。 在曲面和抗锯齿中很有用。 1)当前子空间没有多边形:完成! 2)当前子空间只有一个多边形:画! 3

项目实战:Qt多段Y轴折线图框架(双Y轴段折线、支持拽拖、浮动游标显示X值各段Y值、支持大量实时显示下位机数据)

…衆ロ難τιáo~ 提交于 2020-12-26 00:53:34
若该文为原创文章,转载请注明原文出处 本文章博客地址: https://blog.csdn.net/qq21497936/article/details/111660400 长期持续带来更多项目与技术分享,咨询请加QQ:21497936、微信:yangsir198808 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门) 开发专栏:项目实战 <br> 需求   1. 双Y轴段曲线;   2. 拽拖分析已有数据;   2. 支持悬浮显示当前最近x的各段y坐标;   3. 优化显示性能以及缓存;   4. 支持各种有颜色的调整‘;   5. 读取文件或者下位机数据; <br> 注意   Qt相关的二维折线图,采用其他方式都无法实现多段Y轴(非双Y轴,单Y轴多段),包括QCharts、QCustomPlot、Qwt,其他已有的框架内嵌web可实现,基于需要实时采集数据,内嵌web实时体验并不好,于是写了个基础框架,以便实现实时数据的大量采集。 <br> Demo          体验下载地址   CSDN(粉丝免积分下载): https://download.csdn.net/download/qq21497936/13777399   QQ群:

MySQL 优化:覆盖索引、延迟关联

╄→гoц情女王★ 提交于 2020-12-23 07:32:36
作者: 一枝花算不算浪漫 [1] 原文地址:https://www.cnblogs.com/wang-meng/p/ae6d1c4a7b553e9a5c8f46b67fb3e3aa.html 小结: 回表 :回到主键索引树搜索的过程,我们称为回表。 覆盖索引 :就是 select 的数据列只用从索引中就能够取得,不必从数据表中读取。简单点说就是你要查的数据索引里都有,一次搞定,美滋滋 😎。 延迟关联 :通过使用覆盖索引查询返回需要的主键,再根据主键关联原表获得需要的数据。 1. 前言 上周新系统改版上线,上线第二天就出现了较多的线上 慢 sql 查询,紧接着 dba 给出了定位及解决方案,这里较多的是使用 延迟关联 去优化。 而我对于这个 延迟关联 也是第一次听说(o(╥﹏╥)o),所以今天一定要学习并产出一篇学习笔记。( ^▽^ ) 2. 回表 我们都知道 InnoDB 采用的 B+ tree 来实现索引的,索引又分为主键索引(聚簇索引)和普通索引(二级索引)。 那么我们就来看下 基于主键索引和普通索引的查询有什么区别? 如果语句是 select * from T where ID=500,即主键查询方式,则只需要搜索 ID 这棵 B+树; 如果语句是 select * from T where k=5,即普通索引查询方式,则需要先搜索 k 索引树,得到 ID 的值为 500

使用Unity实现VR中在黑板上写字(升级篇)(二)----- 加入黑板擦

為{幸葍}努か 提交于 2020-11-26 04:19:18
黑板擦的功能其实和画笔是一样的,只是黑板擦设置的颜色是画板最原始的颜色,而笔设置的是其他的颜色。 所以最大的不同时,当手柄握住黑板擦时和握住笔时的函数实现是不一样的;实现这个功能之后,黑板擦的擦掉功能将在后续的篇章中和画笔一起完成; 可以看到不管黑板擦以什么角度开始靠近画板,最终这个黑板擦一定是和画板平行的; 先看看画板的坐标系: 再看看黑板擦的坐标系: 也就是说不管黑板擦以何种旋转角度(Rotation)靠近黑板最终的结果就是:黑板擦的transform.up指向画板的 -transform.forward方向;而在靠近的过程中,根据靠近的距离,我们把这个Rotation进行插值就可以了; 现在的问题就是什么时候开始插值呢?The Lab中的实现是,当黑板檫的中心点与画板的距离是黑板擦长边的0.5的时候,就开始插值,什么时候结束呢?最简单的就是0的时候,但是因为我的黑板擦底部有个0.02m的黑色擦布,所以我的是0.02m时结束; 因此首先需要写一个映射函数: public static class Helper { /// <summary> /// 用于比较两个Color32类型是不是一样 /// </summary> /// <param name="origin"></param> /// <param name="compare"></param> ///

有关于mysql 时间作为条件查询,索引失效的问题。

こ雲淡風輕ζ 提交于 2020-11-04 06:59:38
原文地址: https://mp.weixin.qq.com/s/Wh3_6GE30fBmEaeCEIK14w 今天遇到一个时间类型,索引失效的问题,记录一个整个过程。 1.先新建一张表,对create_time 字段添加索引 2.用存储过程向user表中批量插入数据 插入的数据总计为1000条。 3.用create_time<2020-01-01 作为条件进行查询,查询出29条数据,并explain 解释一下,发现用了索引。 select * from user where create_time < STR_TO_DATE ( '2020-01-01' , '%Y-%m-%d %H-%i-%S' ) 4.再将create_time>2020-01-01 作为条件进行查询,查询970条数据,并用explain 解释一下,发现并不会用到索引,索引失效了。 select * from user where create_time > STR_TO_DATE ( '2020-01-01' , '%Y-%m-%d %H-%i-%S' ) 5.说明 经过查阅一下资料发现,当用时间类型作为索引的时候。索引有时候会失效的原因是: 当你要查询出来的数据/表总数据 >30% 时候索引就会失效 。上面总数据1000条,第一次查询29条数据,29/1000<30% 所以索引有效。后面查询970数据

Qt音视频开发44-实时人脸框

喜你入骨 提交于 2020-11-01 17:10:07
一、前言 在人脸识别到以后,需要在实时视频上将所有人脸框绘制出来,一把来说识别人脸会有多种选择,一个是识别最大人脸,这种场景主要用于刷脸门禁,还有一种是识别所有人脸,这种场景主要用于人脸识别摄像机,就是将画面中的所有人脸识别出来发给服务器,人脸框的数据主要是四个参数,左上角和右下角的位置,也可以说是x、y、width、height,可能有些做的比较好的还有倾斜角度,这个意义不是很大,人脸识别的速度一般都是飞快的,就算你用学习上用的opencv做识别也是非常快的,基本上都是毫秒级的响应,主要的耗时操作在特征值的提取,所以一般要求能够响应每个通道每秒钟25帧-30帧的画面绘制+人脸框的绘制,当然人脸框的数据可能会有多个。 用Qt来绘制人脸框,核心就是一个函数,调用QPainter的drawRect方法,传入区域即可,如果花哨点的话还可以设置边框的粗细和颜色、圆角角度等,注意圆角角度使用的是drawRoundedRect而不是drawRoundRect,很多人这里会搞错哦。近期接触的项目对人脸框的要求越来越多,之前是让用户自己拿到图片来绘制,近期索性直接将这个功能内置到视频控件中(视频控件封装了多种内核版本,有ffmpeg、vlc、mpv、海康sdk等),提供了可设置边框粗细、颜色,传入人脸框区域集合的接口,用户只要自己的算法分析拿到人脸的区域集合(用户是上帝,用户的需求就是我的需求)

笑谈互联网项目流程

巧了我就是萌 提交于 2020-10-30 07:21:54
原文地址:https://zhuanlan.zhihu.com/p/97466028 作者: 洪九 [1] 点击蓝字关注我 俗话说“天下熙熙皆为利来,天下攘攘皆为利往”。一家互联网公司中的人来来往往,大家都在干啥呢? 公司由一个个 Team 组成,而一个个项目又把不同 Team 连接在一块。所以啊,弄清楚一个项目流程,就知道大家为啥而奔波了。这可能是最全最贴近实际的项目流程描述,大概是网上搜不到,书里查不到,求人问不到的那种。。。 互联网项目流程 1. 需求评审: 需求评审就像盘古开天劈地一样,是一切项目的起源。产品(PM 或者说 PD)把用户或者运营同学的需求整理成 PRD(需求)文档 ,然后召集各路英雄好汉,杀入光明顶,展开一番论剑。PD 同学手握 业务方令牌 ,力战群雄。顿时,江湖风起云涌,一场血雨腥风笼罩在 BU 上空。 看,那位目光犀利,两鬓斑白,发际线深不可测的智者就是算法老大,江湖人称枯木大师的段延庆,后面是他的几个小弟。 手持禅杖,身披袈裟,默念经文的就是开发团队老大玄慈方丈,江湖人称带头大哥,傍边的两个小僧是他的门徒,据说他的团队单身率最高。 迎面走来的,那位风韵犹存,性情刚烈,正邪不两立,颇有一代宗师风范的就是测试组第三代掌门,江湖人称灭绝师太,后面是她新收的徒弟周芷若。 有一位眼神空灵,仙风道骨,风度翩翩,超凡脱俗之人,没错,他就是 UED 团队的老大空虚道长