多边形渐变色的实现

渐变效果能够实现多种颜色之间的自然过渡,一般情况下,渐变往往与某种场强度相关,或者说某一个在二维空间内连续变化的数值相关,比如某片地区的气温,海拔高度,一条路径的畅通程度。地图中常见的渐变效果是热力图,分层设色也算渐变吧,只要分的够多。

渐变色也能用于实现阴影的效果,也就是从灰色过渡为透明的形式,从而使得 2D 的地图更加立体。下图是 iOS 中地图应用的截图,右上角的控件实际上就有阴影,用于与地图做区分。仔细观察的话,地图中水系的边缘也是有向内的阴影的,用于与陆地做区分。

Poor pigs

本文从一条 LeetCode 算法题,研究了一下题目拓展后的情景,并结合言论审查赋予了拓展题一点点实际意义。

小插曲一:在写本文期间看到的笑话一则,真实性未验证:众网友为吐槽“浙江选考”,却发现微博屏蔽了部分“浙江选考”相关的搜索结果,问题既不是出在“浙江”上,也不是出在“选考”上,而是“江选”两个字。

小插曲二:在 LeetCode 的中文站上看题解时,发现好像有些词被屏蔽了,通过与题目描述对比,发现“毒药”是敏感词。

“毒药”也是敏感词?
继续阅读Poor pigs

计算器启示录

简介

之所以起了这个标题,是因为看了《Windows编程启示录》。为什么会看这本书呢?因为这本书和这篇文章《How does the calculator percent key work?》是同一个人。为什么会看这篇文章呢?因为前几天,网上曝光出了手机自带的计算器中的一个“bug”,无论是安卓,还是iOS,在自带的计算器软件中输入“10%+10%”,得出的结果是0.11,而非0.2。08年的这篇文章解释了这个问题。

继续阅读计算器启示录

算法笔记——树

简介

感觉树相关的算法问题离不开树的构建和搜索,不同类型的树有不同的搜索姿势,遍历也算是一种搜索吧,从头到尾,无目的的那种。

构建是为了组织好数据,方便搜索。涉及到的问题一般是添,删,改,查。

搜索则像是在解决实际的问题,既有通用的搜索方式,特殊形态的树也存在着特有的搜索方式。

继续阅读算法笔记——树

算法笔记——动态规划

本篇文章是对动态规划类的问题进行一个汇总。随着我对这类的问题的不断地接触,这篇笔记也会不断的丰富。

在网上看到了一篇对动态规划问题梳理的很详细的文章,所以本文基本按照那篇文章的结构来进行,之后会结合 LeetCode 中的实际题目看看处理问题的思路。那篇文章的链接见文末。

继续阅读算法笔记——动态规划

基于 OSM 路网数据生成立体立交道路的尝试

简介

之所以要做这么一件事情是因为在玩《Cities: Skylines》时,游戏内的立交建造比较繁琐,又很重要。于是就萌生了做一个从目前已有的二维地图道路数据自动生成立体的立交道路的工具的想法。

以延安东路立交桥为例,第一张是平面展示效果,第二张是立体展示效果:

如果能用第二张图中的道路数据,导入到游戏中,想必很实用。所以,接下来的内容就是介绍我的想法,关于如何从图一中的数据计算得到图二中的数据。

继续阅读基于 OSM 路网数据生成立体立交道路的尝试

实现克里金(kriging)插值(一)计算原理

这篇文章是大三的一个课程大作业,最初发布在 CSDN 上。因为当时花了很多精力在这上面,所以决定搬过来。

克里金插值较为复杂,但效果也是比较好的。为了能够通过代码实现克里金插值的过程,首先需要了解其详细的计算过程。

继续阅读实现克里金(kriging)插值(一)计算原理