设计原则与MaterialDesign基础原则
基础设计原则: 一旦你能够说出什么东西的名字,就会很容易注意到它。你就会掌握它,拥有它,使它在你的控制之中。当我们没用听说过一些设计的概念,我们就很难会注意到一个设计作品上的问题、缺漏,更不可能做出良好的设计。 对比(Contrast) Robin对比原则指出:页面上的不同元素之间要有对比效果,达到吸引读者的对比效果。 原理: 页面上的不同元素会存在关联性和差异性,对比原则倡导通过视觉元素的对比来表现这种差异性。对比原则要解决的问题是如何更好的吸引用户的眼球,以及如何更好的为用户展现不同信息的重要程度。如果元素(字体、颜色、大小、线宽、形状、空间等)不相同,那就干脆让它们截然不同。对比能够让讯息更准确的传达,内容更容易的被找到、被记住。 对比不仅可以用来吸引眼球,还可以用来组织信息、清晰层级、在界面上指引读者,并且制造焦点。 样例: 比如: 又比如: 为什么暂停、上下曲目按键是白色实心button而其他button不仅小而且还是灰色的?QQ音乐使用这种对比突出button层级与重要性。而曲名与其余信息也有明显对比。 反面教材: 背景图片导致的hint文字看不清,两者对比度 ...
typora插入数学符号与公式
公式块与行内公式的添加 先在偏好设置里面打开公式输入,然后重启Typora 这个齐,下文中找不到就去这里面:https://blog.csdn.net/YuYunTan/article/details/83617781 以及官方文档:https://katex.org/docs/supported.html 颜色 avsRkneavs{\color{Emerald}R_k}neavsRkne :avs{\color{Emerald}R_k}ne 常用公式代码 用{}包裹的表达式会被看做一个整体 上下标,正负无穷 式子作为下标:ax+ya_{x+y}ax+y – a_{x+y} 加减乘,分式,根号,省略号 点乘:a \cdot b a⋅ba \cdot ba⋅b 叉乘:a \times b a×ba \times ba×b 上下取整 ⌈x⌉\lceil x \rceil⌈x⌉ : \lceil x \rceil ⌊x⌋\lfloor x \rfloor⌊x⌋ :\lfloor x \rfloor 三角函数 矢量,累加累乘,极限 希腊字母 希腊字母 latex ...
离散:1.图的表示和同构及连通性
图的表示: 邻接表 邻接矩阵(无向图的邻接矩阵总是对称的) 图的邻接矩阵依赖于所选择的顶点的顺序。因此带n个顶点的图有n!个不同的邻接矩阵,因为n个顶点有n!个不同的顺序。 当图里的边相对少时,邻接矩阵是稀疏矩阵,即只有很少的非0项的矩阵。可以用特殊的方法来表示和计算这样的矩阵。 邻接矩阵也可以表示带环和多重边的无向图,把顶点aia_iai上的环表示成邻接矩阵(i,i)位置上的1。当出现多重边时候,邻接矩阵不再是0-1矩阵,这是因为邻接矩阵的第( i,j)项等于与{aia_iai,aja_jaj}关联的边数。包括多重图与伪图在内的所有无向图都具有对称的邻接矩阵 对无向图来说,邻接矩阵每一行各个位置上数字之和代表什么? 等于顶点i的度减去在顶点i上的环数 对于有向图而言,邻接矩阵每一行各个位置上数字之和代表什么?代表该顶点的出度 deg+(vi)deg^+(v_i)deg+(vi),每一列各个位置上数字之和代表什么?代表该顶点的入度 关联矩阵 图的同构 怎么判断两个简单图是否同构? 相同不变量: 相同的顶点数 有相同的边数 连 ...
绘制:path基础与贝塞尔函数
以flutter为例的path基础讲解: 路径形成的基础方法: 图源Flutter 绘制指南 - 妙笔生花,下面案例同, moveTo:将画笔起点移动到给定坐标 relativeMoveTo:相对当前画笔起点坐标将画笔起点进行dx与dy的平移 lineTo:从画笔起始点画直线到给定坐标 relativeLineTo:在起始点与相对起始点dx、dy距离的点之间画线 flutter的圆弧都是以矩形的内接椭圆截取绘制而来的,所以下面的画弧的方法会传入Rect arcTo: 12345678910111213141516171819202122232425262728//rect: 圆弧所在矩形//startAngle : 开始弧度//sweepAngle : 需要绘制的弧度大小//forceMoveTo : 如果“forceMoveTo”参数为false,则添加一条直线段和一条弧段。//如果“forceMoveTo”参数为true,则启动一个新的子路径,其中包含一个弧段。Path path = Path();Paint paint = Paint() ..col ...
绘制:安卓原生(二、Region)
安卓原生Region: 今天没有讲flutter,貌似,flutter并没有与之对应的内容。 Region,中文意思即区域的意思,它表示的是canvas图层上的某一块封闭的区域。 你可能会问,既然已经有canvas,为什么还要有region? 这是因为,安卓原生的组件无法像flutter那样,通过使用GestureDetector或者GestureRecognizer对组件进行包裹从而非常方便的实现控件的手势控制,而是要进行实例化与调用,那么在自绘组件的时候如何实现手势控制呢?这其实就是region的功能之一了。 首先放上基本上所有的API: 123456789101112131415161718192021222324252627282930313233343536373839404142434445/**构造方法*/ public Region() //创建一个空的区域 public Region(Region region) //拷贝一个region的范围 public Region(Rect r) //创建一个矩形的区域 public Region(int left, in ...
JetBrains系列常用快捷键汇总
引言: 作为一名资深咸鱼,美观强大的编译器一直是我的追求,所谓工欲善其事必先利其器,当然了,也要学会高效地使用编译器,才能讲编译器的优点最大化。磨刀不误砍柴工,下面汇总一些JetBrains家IDE的常用快捷键与设置。 快捷键汇总: 首先,在网上看到有人推荐Key Promoter X 这款插件,当你使用鼠标和菜单项时,这个插件会提示相应的快捷键。我刚安装,先试试水。 导航类快捷键 Ctrl + Tab(^ Tab) —— 切换标签页(特别好用) 快速切换打开的文件。按住 Ctrl 键不释放时可以在打开文件列表中逐个移动,释放时会切换到相应文件。 Ctrl + B (⌘ B) —— 跳转到声明/实现 在某一方法处按此快捷键,会跳转到该方法的声明处,例如,对应的接口。相反,按下 Ctrl + Alt + B(⌘ ⌥ B)不会跳转到接口,而是跳转到接口的实现,很多时候这能节省不少时间。 按两下 Shift(⇧⇧) —— 搜索任意内容 快速点按两下 shift,快速搜索项目中的任意内容,包括文件、行动、类在内的任意内容。 Ctrl + N (⌘ O) —— 查找类 如果已知需要查找的是类, ...
绘制:安卓原生与flutter(一、引言与绘图)
先放上 安卓大佬 和flutter大佬镇楼 引言:我为什么要学绘制 其实对于flutter来说,自绘的需求并不是很大,尤其是组件的自绘,一方面,flutter的组件就是依据MaterialDesign风格绘制的,本来就很好看,另一方面,一些复杂的组件也完全可以通过组件组装的方式进行构建,比自绘要省事。但这并不意味着flutter没有自绘组件的需求,一些高度自定义的组件(比如QQ编辑图片的时候能在图片上贴表情或者加文字时显示的文字框以及文字输入框的拖动缩放旋转等等等等)还是需要我们去自绘组件的。 不过对于安卓原生嘛,嘿嘿,就开始离谱了。原生组件UI也不算。。特别丑,但是相较于flutter来说,高下立判。一方面,原生组件最好还是不要直接拿来用,还是建议进行封装。另一方面,原生的动画效果做的并不比flutter好,而且组件也比较单一,都留给了自绘很大的发展空间(给开发者增加了工作量)。 以下内容选自张风捷特烈的小册Flutter 绘制指南 - 妙笔生花,我觉得说的挺好: 为什么要学绘制 打开你的手机、电脑、平板,你可视的所有的一切在本质上都是依靠绘制实现的 ...
学线oj思路讲解
学线,集合!(by zwn) 难度:简单 tag:数组,计算,送分题 又到了一年一度的迎新季,由于学线福利待遇好,又有新办公室,导致今年迎新展台异常火爆。孔站火速召集学线同学前来帮忙。现在把前来帮忙的同学的位置标记在数轴上,每个同学的位置也存在数组 locate 当中。 孔站可以对 任何同学 执行下面两种操作之一(不限操作次数,0 次也可以): 将任意一个同学向左或者右移动 2 个单位,代价为 0。 将任意一个同学向左或者右移动 1 个单位,代价为 1。 输入数组locate,返回将所有同学移动到同一位置(任意位置)上所需要的最小代价。 最开始的时候,同一位置上也可能有两个或者更多的同学哦。 输入样例 1[1,2,3] 输出样例 11 1解释:第二个筹码移动到位置三的代价是 1,第一个筹码移动到位置三的代价是 0,总代价为 1。 思路:最基础的贪心思想 贪心算法: (英语:greedy algorithm),又称贪婪算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。比如在旅行推销员问题中,如果旅行员每次都选择最近的城市,那 ...