刚开始学 JavaSE 的时候,买了一本业界经典的《Thinking in Java》,后来证明对于初学者来说完全是错误的决定。现在趁着大四有点时间,准备从头将一些重要的知识学一遍。
今天要学的是泛型(文中代码除非特别说明,否则均摘自《Thinking in Java》(第四版))。
刚开始学 JavaSE 的时候,买了一本业界经典的《Thinking in Java》,后来证明对于初学者来说完全是错误的决定。现在趁着大四有点时间,准备从头将一些重要的知识学一遍。
今天要学的是泛型(文中代码除非特别说明,否则均摘自《Thinking in Java》(第四版))。
由之前的文章我们可以得到贝塞尔曲线的方程,今天要通过贝塞尔曲线(三次)重新推出控制点。
在得到并对贝塞尔曲线做完处理后,为了让浏览器重新渲染贝塞尔曲线,必须通过贝塞尔曲线重新取得控制点坐标。
最近将一段 C++ 算法代码改成 Java 版本迁移到 android 平台的时候,发现我的 Java 底子有点薄。比方说,连 Java 深拷贝和浅拷贝都没搞清。
缩放无非就是放大和缩小两种,不管是哪种操作,都可以得到长宽各自缩放的比值。得到的新图要么是像素增加了(拉长),要么是像素减少了(缩短)。不管是哪种情况,都需要对新图中的像素值赋值(也叫插值)。本文只介绍一下最常见的最邻近插值和双线性插值。
SVG 标准指令中的 C/c 可以用于构造三次贝塞尔曲线(cube bezier curve),具体用法是:X0, Y0 C X1 Y1, X2 Y2, X3 Y3
,这里面的 X、Y 用的是绝对坐标,它们代表三次贝塞尔曲线的控制点( X0, Y0 和 X3、Y3 恰好是曲线前后端点,所以实际上只有两个控制点)。但我的目的是想对贝塞尔曲线做一次 wrap,而这些控制点并不一定就在曲线上,所以必须先把曲线求出来,再对曲线做 wrap 形变。
其实这应该属于图像处理的入门内容,因为跟三角形相关所以 mark 一下。
我们要实现这样一个函数,输入参数是绘制的图片以及三角形三个点:
1 | function(image, point1, point2, point3) |
简单起见,不考虑输入的点超过图片范围等异常情况,假设输入都合法,并且输入图片是像素全为 0 的黑图。任务是将三个点构成的区域像素值设为 255,即白色。
最近使用 Android Studio 开发 jni 程序时,遇到一个极其蛋疼的问题:AS 编译运行的速度实在是太慢了!!!而且 jni 开发的时候一定要先 clean 一遍,再重新 build 工程,整个过程总耗时=上个厕所+喝一杯咖啡,这在调试时尤为不便。于是我上网兜了一遍,终于找到一种更快捷的方法。
Mac 有自带的工具 Automator 可以批量修改文件名,但对程序员这种需要经常周游在各种 *nix 系统的生物来说,会用 shell 显然是更好的。
最近在系统学习 Android 一些底层的实现。今天花了一天时间,查阅各种文章源码,决定对 Touch 事件的分发过程做一次梳理。