首页
学习
活动
专区
圈层
工具
发布

当我看到一堆if else时,我的内心是奔溃的

,我是真的遇到过了!...下面将会谈谈我在工作中如何减少if else嵌套的。 正文 在谈我的方法之前,不妨先用个例子来说明if else嵌套过多的弊端。...上面的代码我是用java写的,对于java程序员来说,空值判断简直使人很沮丧,让人身心疲惫。...这样一来,代码的可读性好很多,嵌套也不超过3层了。 但可以看到,shareImpl里还是包含分享类型的判断,也即业务判断,我们都清楚产品经理的脑洞有多大了,分享的类型随时会改变或添加。...我个人觉得让用户了解多几个方法好过了解多几个类,而已方法名一看就能知道意图,成本还是挺小,是可以接受的。 其实这种情况,更多人想到的是使用工厂模式。

68740

如何做好基于地图的数据可视化?

如果地图上的点是谁投票给谁,那么地表覆盖是无关紧要的,通常可以用中立的白色或灰色背景。 罗宾逊说,另外一个陷阱是太多杂乱。...墨卡托投影严重扭曲了两极附近的距离,所以真正达到这些区域的来自平壤的导弹距离将大非常多。很快,杂志出版了修正版,和校正后的地图。 选择错误的投影是菜鸟级别的错误。问题很简单:地球是圆的,而地图是平的。...投影是根据数学公式强制把圆的地球映射到平面的地图上。每一种投影都是扭曲的面积、形状、方向和距离的组合,都有其优点和缺点。墨卡托,是为16世纪航海图而设计,很擅长保持方向。...规范化你的等值线图 当我第一次在2013年一个制图会议上见到安东尼·罗宾逊,他身上别了一个别针写着:“规范化你的等值线图”。我当时不知道这是什么意思,后来才发现它是非常重要的建议。...在我自己第一次努力制作地图时,我用了一个更简单的选择:ArcGIS on line ,来自是微软的GIS地图软件Esri。记者可以请求通过Esri的媒体关系团队免费获取。

1.9K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Processing文字气泡抖动创作思路解析

    (2)这么多的气泡用的是粒子的设计思路么? (3)粒子该怎么绘制?一个粒子是有两层圆形,背景层黑色,前景层白色,真的是这样吗? (4)一直在不停的动是怎么实现的?...最开始小菜在看到效果的时候,以为单个气泡粒子 Particle 的绘制是这样的: 粒子的绘制分成了黑色背景层和白色前景层,但一想不对啊,如果单个粒子是这么绘制的,那么他们接触叠加的时候应该是这样的:...,绘制出白色的粒子层 // 第一次循环遍历,用来绘制粒子的底层边框色 // display 用来绘制背景圆 // update用来更新粒子的速度和位置 for (int i = 0; i...,设计了两种类型,使用了两种绘制模式,display()和display2() type0:背景黑色圆大小固定,前景白色圆来回缩放(使用 updateBorder ) type1:背景黑色圆来回缩放,前景白色圆大小固定...假设可通过的草地编号为0,不可爆破的砖块我们编号为1,可爆破的砖块编号为2,游戏通往下一关的关卡编号3,玩家的编号为4,坏蛋的编号为5,那么我们无论我们是通过关卡编辑器生成地图,还是我们硬核输入二维地图数据

    1.6K10

    联系我们吧 - 12个联系我们表单和页面设计赏析和学习

    设计网站时,关于我们页面和联系页面(contact us page)往往是必要页面之一。虽然只是一个简单的页面,但要真的能让用户有联系你的冲动还是很有挑战性。...如果说,用户点击了联系页面,用户其实已经在尝试联系你了,这个时候,你需要提供的,不是花哨的设计,而是直观的联系方式,不阻碍用户尝试联系你的行为。...但话又说回来,如果你有信心设计得美观,新颖,自然是最好,而且简洁也不意味着简单。今天我和大家分享12个联系我们表单和页面设计模板和例子,如果你喜欢,可以用在你的网页设计里哦。 1. ...该联系表单包含有Google地图背景,可以准确地展示你公司在地图上的位置。...Contact Form v10 特色: 纯色按钮 自定义样式提交按钮 大文本框 完全响应设计 圆边框 该模板是一个简易的免费HTML5联系表单模板。

    7.1K30

    10分钟动手制作一个疫情小区防疫地图

    我们先来看第一个小红标的实现,小红标是属于覆盖物,所以我们点击覆盖物示例进去,选择设置新图标,就可以看到在右边图中显示出一个小红标,显示这个小红标的核心其实就是指明显示位置,即小红标所在的经纬度,就是中间我红框框住的代码部分...如果你要想把北京市有确诊的小区标注出来,那么你只需要把这些小区的经纬度全部获取到,然后在这里面指明即可,下面是我随便新增了几个标注示例: ?...表示在哪个位置附近添加圆,500表示圆的大小,通过这段代码圆也就可以实现了: ?...只需要把上面添加标注和添加圆的两部分代码组合在一起就可以达到文章开头防疫地图的效果。...你可以把所有已经有确诊患者小区的经纬度获取到,然后全部标注到地图上,每天对标注进行实时更新,这样就制作成了一张防疫地图了,有兴趣的同学可以自己去尝试尝试。

    1.9K30

    教你在Tableau中绘制蝌蚪图等带有空心圆的图表(多链接)

    本文将通过分享多种方法,包括成功的与失败的尝试,来讲解如何在Tableau中创建蝌蚪图等带有空心圆的图表。...我之前遇到过这种情况并且多年来尝试过各种方法,所以我会分享自己一些的尝试和简单的解决方法,用于在Tableau中使用空白圆绘制蝌蚪图等图表。...那么我们如何在Tableau中创建一个相似的图表,并使得空白圆圈里面保持白色(或者任何背景颜色)呢? 不好用的方法 在我介绍解决方案前,我将分享一些自己不太成功的尝试。...这样做的问题是,当Tableau对保存为具有透明背景的PNG文件中的自定义图形上的颜色编码时,它会改变白色中心的颜色,最后会出现彩色的圆点。那么JPG文件呢?...带有空心圆圈的哑铃图: 前一时段用空心圆而当前时段用实心圆表示的哑铃图: 用白色圆圈在点与线之间构造间隙的哑铃图: 带有空心圆圈的棒棒糖图: 带有空心圆圈的折线图

    10.2K50

    Android自定义系列——6.PorterDuffXfermode

    ()在Canvas上绘制了一个透明的矩形,由于Activity本身屏幕的背景时白色的,所以此处就显示了一个白色的矩形。...关于canvas绘图中的layer有以下几点需要说明: 1.canvas是支持图层layer渲染这种技术的,canvas默认就有一个layer,当我们平时调用canvas的各种drawXXX()方法时...我们在分析示例二代码时知道了最终矩形区域的目标颜色都被重置为透明色(0,0,0,0)了,最后只是由于Activity背景色为白色,所以才最终显示成白色矩形。...我举个例子,比如当设置的PorterDuffXfermode中的值为CLEAR时,API Demo中肉眼看到的结果是整个圆形都不可见了,其实这是不对的,因为如果makeDst()、makeSrc()方法所得到的...中的值为SRC时,API Demo中肉眼看到的结果是绘制的黄色的圆形完全不可见,绘制的蓝色的矩形完全可见,其实这是不对的,因为如果makeDst()、makeSrc()方法所得到的Bitmap的实际大小与所画的圆

    1.8K21

    【带着canvas去流浪(7)】绘制水球图

    水球图是一种常见的加载动画,属于扩展图形,在echarts中使用时需要下载扩展库(同为扩展库的还包括文字云插件和地图插件,项目地址为https://github.com/ecomfe/echarts-liquidfill...我们期望实现的效果是,当文字未被水波浸入时,显示水纹的蓝色,而被水浸润的部分显示为白色,这样看起来更加生动。...为了避免文字中白色的部分被下一层水纹绘制时截断,我们需要在每一层水纹绘制后,都重复步骤2,将该层水纹到水球底部的所有范围设置为剪裁区域,然后绘制该层水纹以内的白色文字部分,这样当几层水纹都绘制完毕后,文字淹水的部分就都会被染成白色...另一种较为有效的方案,是在绘制外圆时增加2px-4px的深色阴影,在视觉上可以很好地弱化锯齿感。...//在绘制外圆之前添加如下代码 context.shadowColor = '#2E5199'; context.shadowBlur = 2; context.shadowOffsetX

    1.7K00

    circos 可视化手册- images 篇

    image这个block是circos内置的block之一,其配置文件为软件安装目录下的etc/image.conf。内容为 ?...svg svg指定生成的图片的格式,yes代表生成svg格式的图片 radius radius指定图片半径的大小,由于circos是圆形布局,所以用圆的半径来控制图片大小,生成的图片是正方形的,边长为...12点钟位置, auto_alpha_colors auto_alpha_colors代笔对颜色添加透明度,在原来RGB颜色的基础上,添加一个alpha透明度属性, auto_alpha_step auto_alpha_step...指定透明度的大小,取值范围0-100, 默认值为5 background.white.conf文件只有一行内容 background = white 指定生成的图片的背景色,可以看到这里为白色,所以默认生成的图片背景色都为白色...此时image的相关配置就是系统默认配置,当我们想要改变其中某项默认配置时,比如修改背景色为黑色,需要使用*操作符,示例如下 ? 在想要修改的参数后面添加*, 然后重新赋值即可。

    1.1K20

    如何用Scratch 3绘制矢量图形 【Gaming】

    我将通过解释如何绘制苹果来演示在Scratch中绘制矢量精灵的所有要点,但是您可以将此方法应用于任何要创建的对象。...绘图工具 Scratch的矢量绘图工具箱是您找到绘制对象所需工具的地方: 图片7.png 下面是一些与绘制矢量图形相关的词汇: 画布Canvas:你画的地方;白色和灰色的盘是透明的 节点Node:沿对象路径确定对象形状的点...–如果希望形状透明,请选择带有对角线红线的白色框将颜色设置为“无”。–如果要在对象周围添加或移除彩色边框,请选择“轮廓”下的下拉菜单。 图片9.png 3. 选择节点工具。单击对象的中心将其选中。...您将看到四个节点均匀分布在圆的边缘。 图片10.png 移动任何节点都会改变圆的形状单击圆的边可以添加更多节点。如果移动节点过多或意外添加节点,可以通过单击屏幕顶部的后退箭头图标来撤消最后一步。...节点被选中时变为蓝色。 图片11.png 选择节点后,按键盘上的向上箭头将节点移向圆的顶部。 图片12.png 5. 向圆的底部添加两个节点,一个位于原始底部节点的左侧,另一个位于右侧。

    7.4K00

    如何用Tableau可视化?

    环形图的制作实际上是在饼图的基础上形成的,也有空心饼图之称。 它和饼图一样,适用于表现比例 进度等百分比数据,但环形图更加直观简洁且有更多的空间可以用于添加需要展示的信息。...设置完毕后,会形成两张一样的饼图 image.png 因为环形图的本质实际是利用一张实心白底圆遮住圆心部分的饼图实现的,所以需要通过将第2个饼图设置为【双轴】来合并到一个坐标轴下,互相重合 image.png...形成双轴饼图后,分别将饼图的大小进行调整,使第2个饼图大小略微小于第1个饼图 image.png 再将第2个饼图的标记全部移除 image.png 移除后,会得到一个灰色的实心单色圆 image.png...最后把灰色改为白色 image.png 最后环形图就呈现出来了,也可以跟进需要再次调整环形图大小进行美化 image.png 2.如何创建筛选器?...如果你使用过导航,你会感慨“这种地图是怎么做出来的?” 其实,地图有两种类型(气泡地图、着色地图)。下面我们用案例数据来演示一遍如何做地图。 1)符号地图 气泡图可以直观的显示不同地区的数据大小。

    3.1K40

    R语言数据地图——全球填色地图

    今天这篇是昨天美国地图的续篇,同样的方法技巧,不同的对象。...第二、由于全球地图呈现的信息比较丰富,所有的海岛和群岛信息全部都会上色,特别是北欧、北美(加拿大)、大洋洲这些多岛屿、群岛低于会有大量的密集分布的小岛,而填色代码在填充时,多边形线条填充为灰色,造成很多地区边界以及岛链出现大面积黑灰色...但是这样做也会有不足,因为渐变色的色值范围是从(low="white",high="steelblue")连续过渡的,这样数值接近于零的地区会被填充为纯白,这样与边线的白色会混杂,导致局部地区边界难辨。...当然你也可以尝试用双色过渡。 ? 我把渐变范围的低值与高值起点色和重点色替换成了:(low="DeepSkyBlue",high="OrangeRed")。...但是通常来讲根据数据地图的填色规范: 指标都是正值,应该使用单色系连续渐变填充,只有在存在正负值类型的数据时,双色渐变才比较有意义。

    16K84

    R-tmap+grid 实现南海小地图的添加

    起初我在查阅tmap官网时也确实发现了类似功能的绘图函数tm_minimap() 。 ? 但在尝试 多次后始终无法实现。最终使用其他方法实现了该功能,也完美衔接tmap绘图体系。...2 tmap 绘制主要地图部分 南海小地图绘制 本部分的主要的绘图函数和之前的推文R-tmap绘制带有指北针和比例尺的空间地图 一样,此外,我们添加了单独绘制南海区域(即需要单独绘制的南海部分地图),主要代码如下...这个包最吸引我的一点如下图中圆框所示,当然也是可以添加 指北针和比例尺的哦: ? ?...5 总结 本期推文我们讲解了使用grid包结合tmap包进行南海小地图(minimap)的添加,当然类似的地图添加组合都是可以的。...此外,我们大致介绍了另一个绘制空间地图强大的R包cartography。希望大家可以掌握技巧并尝试使用其他包进行绘制。能力有限,大家可以进群讨论交流哦,偷偷告诉你,群里的大牛是真多哦

    1.7K20

    开发 h5| Hybrid | 微信小程序 | 实践踩坑总结十六条

    这篇文章主要是针对 h5| Hybrid | 微信小程序 三个方向来讲述我遇到的坑,以及详细讲解我是如何解决问题的。 一直以来,移动端适配就是一个令人头疼的问题。...如果圆比较大可能不是很明显,但是如果圆比较小的时候,会出现明显的不圆,圆被拉伸的情况。 大致效果如下所示。 ? ?...解决方案 input的placeholder会出现文本位置偏上的情况:PC端设置line-height等于height能够对齐,而移动端仍然是偏上,解决方案时是设置css line-height:normal...原生组件会遮挡 vConsole 弹出的调试面板。在工具上,原生组件是用web组件模拟的,因此很多情况并不能很好的还原真机的表现,建议开发者在使用到原生组件时尽量在真机上进行调试。...这到底是为什么呢,这个问题困扰我很久,查阅了相关资料,微信文档都没找到相关的解决方案。

    3.4K30

    用 Wolfram 语言发掘数学殿堂中的瑰宝

    所以经常发生的是, 当我把一个 GIF 发布到 Wolfram 社区里后, 我会花几分钟盯着预览, 试图找到一个标题。"...在创作几何形式时,我通常从黑白色开始,并试图使动画工作正常。在我开始考虑上色之前, 动画问题通常已经解决了。...我很不擅长看着一堆调色板, 想象它们将如何出现在一个实际的构图中,所以通常我要尝试很多不同的颜色组合, 才能找到一个真正喜欢的。"..."为了创作 '内在的光 '(Inner Light), 我在平面上取了一束同心圆, 从一步步缩放平面开始,这样每个单独的圆就变得越来越大。...然后, 我逆立体成像到球体, 其中的圆圈成为纬度圈,然后在每一个圈外围做一个管. ' 可再生资源 ' (Renewable Resource)也大体相同,只是在每个圆上是单独的点, 我只在最后的图像中显示半个球体

    70170

    孩子喜欢飞机,于是我给她做了一个雷达

    可能是我们宣传有点过头了,以至于当我们不得不坐出租车去机场时,我蹒跚学步的孩子感到震惊——她原本以为会从我们家直接走上飞机。 我们登机后,发生了一件令人难以置信的事情。...原来,当机组人员发现你和一个痴迷于飞机的可爱小孩在一起时,他们会邀请你们去看看驾驶舱。 这激发了我女儿对飞机的痴迷。 从那之后,她一直要求我在天上为她寻找飞机,当我为她找到一架飞机时,她很高兴。...可能你会注意到一个有趣的视觉故障,因为动画逻辑将0度和360度视为单独的数字——当我经过正北时,所有矩形都会旋转。 航班数据 热身结束,接下来是重要的部分。...我使用飞行高度在地图注释中添加了一些简单的对数缩放,以便更高的飞机在屏幕上显得更大。此外,我使用飞机的真实属性,结合核心位置中的用户方向,来显示飞机面向正确的方向。...绘制雷达 核心需求的最后一部分是雷达视图,这本质上是一组直线、同心圆和20度的旋转角梯度。 难不倒我。 用户调研2 经过三个晚上的辛苦工作,女儿终于开始对我创造的玩具表现出一些兴趣。

    68810

    自定义View【2】

    relativeLineTo 相对当前位置连接到 arcTo 二阶贝塞尔曲线 conicTo 三阶贝塞尔曲线 add** 添加其他图形,如addArc,在路径是添加圆弧 contains 路径上是否包括某点...当然我们也可以尝试画画其他的图形 使用arcTo绘制曲线,不熟悉贝塞尔曲线的童鞋可以自行google你科普下。 使用二阶贝塞尔曲线绘制弧线 ? 或者直接绘制一个圆 ?...当然我们也可以使用三阶贝塞尔曲线来绘制其他的图形: 比如,我对你们的爱哦 ?...绘制图片drawImage drawImage(Image image, Offset p, Paint paint) 绘制起来也非常的简单,首先我们需要获取本地图片文件,然后绘制图片即可。...绘制颜色drawColor ---- 绘制颜色用起来就比较简单了,主要是用来给你绘制过的图形上做颜色的变换,颜色的变换模式有多种,大家可以在下面自己尝试,下面仅仅演示下如何使用 首先我们先绘制一个颜色为蓝色的圆

    55420

    一文带你了解卷积网络中的几何学

    最简单的表面是平面,就像电脑屏幕。当我们用CNN做卷积时,我们往往都是针对这些平面图像来做的。 假设,我们想用CNN来预测天气。...当我们尝试应用卷积时,我们会得到奇怪的结果。边缘会出现不合常理的情况。它可能会预测图片的最右侧会有强东风,然而图片左边什么也没有,即使它们代表相同的地点。CNN根本不知道地球是环回的。...在确保下一张地图开始于上一张地图相同的重合点的情况下,把CNN在这些单独的地图上平移,这样应该能让它认识到地球是圆的。这是几何深度学习的基本思想:直接应用深度学习于表面或流形上,以保留几何结构。...因此,我们说平面是可平行的(回到起点后,你的方向矢量仍旧保持平行),而球面不是。 你会发现这对于我们在球面上的CNN来说是一个问题。当我们把CNN在所有地图上朝四面八方移动时,方向似乎会改变。...我们只需要确保输入矢量的规范变换导致输出矢量的等变变换(即,相同的变换,但在适当的表示中)。 现在,使用规范等价,当我们在不同的地图上执行卷积时,我们在数字上得到不同的结果,但是他们的结果是一致的。

    1.2K10
    领券