- 博客(131)
- 资源 (14)
- 问答 (2)
- 收藏
- 关注
原创 做异端中的异端 -- Emacs裸奔之路7: 怀念Vim的好
上面代码执行之后,只要执行forward-word或者backward-word,就可以使用字母f与b重复,如果出现f与b之外的按键,就中断。组合键的另一个问题就是,你必须两只手同步放在键盘上,如果你想偶尔跷一个二郎腿或者换一个坐姿,就不是非常方便了。如果向前移动一个字,Vim只要在ESC模式下按w,而Emacs是Alt-f.从Vim切换成Emacs之后,有一明显的不适就是感受Emacs的按键很硬,特别是当你对键盘改键之后不是很熟悉的时候,你会用力按住Alt,生怕有差错。但大部分日常并不需要这么复杂.
2024-12-04 10:09:19
635
原创 做异端中的异端 -- Emacs裸奔之路6: 不可能存在的跳转功能
当一个问题存在两难时,市面上就不太可能出现稳定的,大众化的解决方案。这很多是一个哲学问题两害权衡,存在很强的个性差异.这种问题需要自己解决,这个就是为什么要使用Emacs或者Vim的原因。今天分享的一个想法,就是调用跳转树的处理方案。由于这里的操作很大的个性化及手工化,没有很合适分享的代码,只是提出方案,抛砖引玉。摒弃IDE的一个后果就是无法方便的查看函数的调用栈.而且这个过程要反复多次,因为需要反复琢磨,特别是一些大型项目,或者写得特别烂的代码,
2024-12-03 13:58:48
645
原创 做异端中的异端 -- Emacs裸奔之路5: 条件反射式移动
移动命令使用频率非常之高,只要方法多一个小小的弯路,对使用体验影响都很大。克服移动上的难度,离掌握Emacs就不远了。但能快速移动到某一行,这种方式太低效了,就算是使用C-r/C-s搜索字符,也非常的麻烦。本文以上下移动命令为例,利用人的本能条件反射,实现高效的移动方式。
2024-12-02 16:37:30
518
原创 做异端中的异端 -- Emacs裸奔之路4: 你不需要IDE
确切地说,你不需要在IDE里面编写或者阅读代码。IDE用于Render资源文件比较合适,但处理文本,并不划算。这的文本文件,包括源代码,配置文件,文档等非二进制文件。但这些便利,是有代价的。IDE需要不断地扫描项目中的源码,这是一个词法与语法分析的过程,与编译过程类似,只是不产生机器码而已。这是一个非常耗时的过程,使用过Android Studio或者Eclipse的同学应该体验深刻,项目启动时实在太慢了。
2024-11-29 16:26:54
996
原创 做异端中的异端 -- Emacs裸奔之路2: 直列键盘是最后的妥协
之前把CapsLock映射成Ctrl,所以大量使用小拇指,在组合键中,如果重复一个操作,比如Backspace多个字符,往往需要一直按着Ctrl,这导致小拇指负荷过大。剩下的人,也不会接受这个绑定,一般选择Emacs的其它发布,如Doom, Spacemacs,这些发布一般使用Vim的绑定。为了保持原来的按键不变,需要利用对按键按下方式,具体来说就是,当正常敲击时(即按下马上放开),保持原按键,当按着不动时,不当Ctrl,还有Shift,Alt也一样,在常规键盘上,按这几个键盘,你不会感觉舒服。
2024-11-28 16:38:40
534
原创 做异端中的异端 -- Emacs裸奔之路1: Vim vs Emacs
Emacs是我见到过的最强大的编辑器,功能与便利性远远超过包括Vim在内的其它编辑器。Emacs功能上要强很多,Elisp比Vim Script优秀,而且优美,你可以用hypen命名变量与函数。我从2011年开始使用Vim,到去年(2023)开始转成Emacs,所以在一些发言权。另外,原生的Emacs补全时,不像Vim一样用菜单下拉显示,所以不清楚候选是什么.做异端中的异端 – Emacs裸奔之路1: Vim vs Emacs。唯一一点Vim能取胜的就是,Vim使用点号重复上次编辑命令,
2024-11-28 12:40:33
767
原创 Qt依赖库路径配置
Qt依赖库路径配置问题Windows下,Qt里有两个项目LockerSDKDemo及LockerSDK.LockerSDKDemo依赖LockerSDK,而LockerSDK依赖外部库,库文件放在其根目录下的depends目录中.如何配置可以在无需复制任何依赖库的情况下直接编译运行LockerSDKDemo?LIBS如果可以将依赖库的路径添加到进程的Path环境变量中,就可以直接运行程序.这一点可以通过LIBS变量来完成.LIBS在Qt官网上并没有直接这样介绍,但在实际上它确实这样做的..
2021-10-18 17:33:09
3252
原创 树状与网状版本仓库分析
树状与网状版本仓库分析问题背景软件版本结构并不是总是线状的.线状,即版本按先后顺序一个接一个地更新,这是非常理想的情况.实际上大部分项目并不这样维护.项目时间久了,版本可以变得非常复杂.考虑下面的仓库:主干分支为master, 另外还有三个分支C,B1及B2.它们的关系是,master维护最基本的共用代码,为其它分支所共用,C在master上定制的,B1与B2在C上定制的.此时的任务是,在B1及B2上应用最新的master代码,要怎么处理呢?树状结构即使用rebase对分支进行重构,让版
2021-10-11 15:44:32
522
原创 英文语法相关总结
英文语法相关总结英文的特点中英文语法大致是一样的.但相对于中文,或者说精确.中文让人脑补的东西比较多,很多需要读者意会的.例如“宾语”及"上市”这两个词不一定所有人都看得明白,但它们对应的英文"object"及"listed"这个词几乎所有人都能明白.中英区别总结几个方面:一字多义“老吾老,以及人之老。”“老"本是形容词,这里同时作名词及动词使用.相似的例子有“道可道非常道”中的“道”.动词可以叠加使用中:我们找人搬家。英:We call other people to move.
2021-07-28 17:16:33
485
原创 抛物线的切线
抛物线的切线抛物线切线的这两个性质是理解Voronoi平面图与空间凸包映射的基础,有些书上会与解析几何的方法求得,而这里主要使用平面几何的方法.性质1:两切线交点与两切点的水平距离相同这个性质对任何抛物线都成立.D,E是抛物线上的两个点,过它们的切线交于点H,D,E在抛物线准线上的正交投影为F与G,求证,H与DF及H与EG的距离相同.证明过程需要利用抛物线的一个特点:平行于对称轴的光打在曲线上会汇于焦点.C是抛物线的焦点,而FG是准线,所以CD=DF.由于抛物线的光学特性,所以:∠JDH=
2021-06-23 11:42:16
12649
原创 最远点Voronoi图的邻边
最远点Voronoi图的邻边结论1:凸包内部的点没有最远区域证明:假设凸包内部一个点I的最远区域存在,令G为此区域中的一点,连接GI,延长线交凸包边界于点H,H所在的边为CD,显然在I在△GCD\triangle{GCD}△GCD内部,所以GI不可能同时超过三角形的两夹边GC与GD,所以,对于G可能属于C或者D,至少不属于I.即这样的点G不存在,意味I的区域也不存在.即凸包内部的点没有自己的最远区域.结论2:凸包相邻的两个点的最远区域一定也相邻凸包边上相邻的三个点A,B,C,做B点最远
2021-06-10 14:55:25
452
原创 MATLAB的线性规划工具
MATLAB的线性规划工具问题描述某次考试,总分100分.分三种题型:单选题13题,每题3分,共39分.多选题10题,每题3.1分,共31分.判断题12题,每题2.5分,共30分.交卷之后,只知道分数为79.3,问:单选题、多选题、判断题分别做错了多少?MATLAB meshz辅助求解假设单选题、多选题、判断题做错数量分别为x,y,z.则可列方程:3x+3.1y+2.5z=100−79.33x + 3.1y + 2.5z = 100-79.33x+3.1y+2.5z=100−79.3
2021-04-30 17:02:28
1058
5
原创 单调多边形的三角剖分
单调多边形的三角剖分问题描述单调多边形指存在一个方向,垂直于此方向的所以扫描线与多边形只有两个交点。这里讨论垂直方向单调多边形的三角剖分。为方便描述,这里没有水平的边。规律1: 同侧端点不可能出现跨越把多边形从最高点到最低点处剖开,分成左右两链,其中任何一条链,端点都是按y值顺序排列的。也就是说,下面的端点不可能高于上面的端点,否则,与y值方向的单调性相违背。如图:D高于C时,显然在C处的水平线会再次与此链相交。规律2:异侧相邻如果两个端点,在竖直方向上相邻的,但不在同一侧,即分别在
2021-04-28 15:46:48
941
原创 距两点距离之比恒定点的轨迹
距两点距离之比恒定点的轨迹问题到两点的距离之和不变的点轨迹是椭圆,到两点距离之差不变的点轨迹是又曲线,那么到两点距离之比不变点的轨迹是什么呢?由于角平分线的特性,问题可以这样描述:AB之间有一点D,在AB之外找一点C,所得CD是∠ACB\angle{ACB}∠ACB的角平分线,求C的轨迹。三角形两腰的比例为:ACBC=ADDB\frac{AC}{BC} = \frac{AD}{DB}BCAC=DBAD而这个比例固定,容易用解析几何的方法求出C的轨迹方程。结果是一个圆。这里使用几何的方法证
2021-03-30 15:31:33
3454
2
原创 多面体欧拉定理推导
多面体欧拉定理推导只里描述三维情况下对欧拉定理一些思考。在三维空间中多面体欧拉定理可表示为:顶点数-棱长数+表面数=2连通图上的规律首先考虑二维平面上,一个连通图的点、边与孔之间的关系。平面上的一个连通图:添加点边中间添加一个顶点时, DE上添加一点G,边会同时增加一条,但孔的数目不变。边两端添加一个顶点,E外侧添加点H,边会同时增加一条,但孔数目不变。添加边连接两个顶点时,顶点数不变,边会增加一条,孔数目的变化要视情况而定。如果这新加的边横穿一个孔,如连接FB,即把一个孔切成了
2021-03-17 17:11:43
5090
原创 Voronoi图交点上的边的数目
Voronoi图交点上的边的数目疑问:A是新加入的一个点,经过运算之后,得到一个自己的区域,BC与CD是其中的两边。C是否可能没有第三条线与它相交?答案是不可能。下面证明这个结论。显然关于A,有这样的两点A’与A1′A'_1A1′,这两个点与A相关于BC与CD的轴对称。显然点C是三角形AA’A1′A'_1A1′的外心,所以A’A1′A'_1A1′的中垂线,即分界线,经过点C.那有没有可能在点A加入之前,点C处被其它区域覆盖呢?不可能,因为这个与前提条件相矛盾。如下图:情况一:P
2021-03-16 11:03:53
328
原创 合并排序时间复杂度推导
合并排序时间复杂度推导算法演示算法演示1算法演示2算法复杂度Big O notation is a mathematical notation that describes the limiting behavior of a functionwhen the argument tends towards a particular value or infinity.算法复杂度推导显然f(1)=1f(1) = 1f(1)=1对于f(n),它的复杂度相当于合并两个数量为n/2的.
2021-03-10 11:13:26
2950
原创 动能定理公式推导
动能定理公式推导动能定理(Kinetic Energy Theorem)的由来与人们所定义的概念有关。以其说其为定量,不如说是一个人为定义的表达式。力F沿S做的功能可以写成W=∫F dSW = \int F\, dSW=∫FdS那W随时间的变化函数自然可以写成:W(t)=∫F(t) dS(t)W(t) = \int F(t)\, dS(t)W(t)=∫F(t)dS(t)下面的把这个表示式再进行演化:W(t)=∫F(t)⋅S′(t) dt=∫F(t)⋅V(t) dtW(t) = \.
2021-02-26 16:17:52
7489
原创 太阳投影轨迹规律
太阳投影轨迹规律问题描述思考这样一个问题:在冬天晴朗的日子里,华南一个空旷的地面上,有一根垂直于地面的旗杆。旗杆自然会在阳光照射下投下影子。那现在问:在一天当中,这个影子如何随着太阳运动而变化?分析与解决很多人第一反应是一条直线,从西边扫到东边的一条直线。因为太阳东升西落,对应旗杆的影子就是从西移到东了。有部分可能会意识到不是简单的一条直线,因为细心的人会发现,冬天的太阳总是在偏南倾斜的,即使在正午,也是偏南的。还细心一点的会发现冬天太阳并不是严格的东升西落,而是从东南方向升起,从西南.
2021-02-25 14:04:01
3842
原创 仿射空间与仿射变换
仿射空间与仿射变换一个简单的几何问题已知AC∥BD∥FEAC \parallel BD \parallel FEAC∥BD∥FE另外AC,BD,AF,FB长度分别为n,m,a,b,求FE的长度.求解:作辅助线CB交于EF于点G在△ABC\triangle{ABC}△ABC与△DBC\triangle{DBC}△DBC中,根据三角形相似,容易求得GF=n⋅ba+bGF = n \cdot \frac{b}{a+b}GF=n⋅a+bbGE=m⋅aa+bGE = m \cdot \f.
2021-02-09 21:19:11
962
原创 坐标轴变换与坐标变换
坐标轴变换与坐标变换主要结论新坐标轴向量组成的矩阵即为对象变换矩阵变换矩阵可以转换为新坐标轴的向量坐标轴不正交时,点的横纵方向分量也都是与坐标轴平行的错切不能替代旋转矩阵与自己的逆矩阵互逆假设B为A的逆矩阵,则A⋅B=EA\cdot B = EA⋅B=EA⋅B⋅A=E⋅A=AA\cdot B\cdot A = E\cdot A = AA⋅B⋅A=E⋅A=AA⋅(B⋅A)=AA\cdot (B\cdot A) = AA⋅(B⋅A)=AB⋅A=EB\cdot A = E.
2021-02-07 15:45:52
2465
原创 叉乘计算公式几何推导
叉乘计算公式几何推导推导方法1经过旋转变换之后,对象的面积是不会改变的。把△FEG\triangle{FEG}△FEG旋转θ\thetaθ到△F′EG′\triangle{F'EG'}△F′EG′△F′EG′\triangle{F'EG'}△F′EG′的面积计算是简单的,即F’的纵坐标 乘以G’的横坐标首先计算出F’ G’的坐标F′(x,y)=[x1y1][cos(θ)−sin(θ)sin(θ)cos(θ)]=[x1cos(θ)+y1sin(θ)−x1sin(θ)+y1cos.
2021-02-05 16:10:32
5697
3
原创 叉乘分配律的几何证明
叉乘分配律的几何证明方法1叉乘常被用于计算机图形学求平面法向量计算。叉乘的物理意义可以理解成力矩。力是可以合成与分解的,所以叉乘当然支持分配律。下面使用几何的方式证明:(a⃗+b⃗)×c⃗=a⃗×c⃗+b⃗×c⃗(\vec{a}+\vec{b}) \times \vec{c} = \vec{a} \times \vec{c} + \vec{b} \times \vec{c}(a+b)×c=a×c+b×c[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JFmn8.
2021-02-05 15:43:17
10726
原创 直线与平面方程的几何表达
直线与平面方程的几何表达法向量求法已知直线AB与坐标轴交于A,B两点,OA长为a, OB长为b,求AB的方程.直线的特征是其上的点与直线法向量的点乘是固定的E的坐标为 (a,b) 显然OE是直线的一法向量ax+by=h⃗⋅OE⃗=∣h⃗∣⋅∣OE⃗∣=∣h⃗∣⋅∣AB⃗∣=2SOAB=abax + by = \vec{h} \cdot \vec {OE}= |\vec{h}| \cdot |\vec {OE}|= |\vec{h}| \cdot |\vec {AB}|= 2 S_{O.
2021-01-22 16:25:27
639
原创 三角形内外判断
三角形内外判断问题平面上,已知三角形三个顶点ABC及另一顶点D的坐标,如何判断点D是否在三角形之内?这个问题在很多场景会遇到,比如判断空间直接与三角形是否相交,可以先计算直线与三角形平面交点,再判断交点是否在三角形之内.计算直线与三角形平面交点的方法可参考文章《阴影投射位置计算》算法一最简单的办法就是比较三角形面积.而面积是易容通过叉乘来计算的.要留意的是浮点数比较的精度问题.如图:如果点D在三角形内,则:SABC=SABD+SADC+SDBCS_{ABC} = S_{ABD}
2021-01-18 19:19:55
810
原创 阴影投射位置计算
阴影投射位置计算问题阴影效果,可以通过对模型的额外渲染来完成。从光源(这里只考虑点光源)出发,经过顶点,发出一条射线。此射线与平面的交点,即为顶点阴影所在位置。这里不涉及具体代码,只讨论阴影位置的计算方法。推导如图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nCVeJT31-1610780542142)(https://i.loli.net/2021/01/16/jbd7lhfw8DF45eL.png)]□IJKL\Box{IJKL}□IJKL是空间中的一
2021-01-16 15:08:19
668
原创 Git合并相关命令细节
Git合并相关命令细节合并相关命令这里的合并指的是自动合并,是采用三路合并算法完成的。提前是存在第三方。只有两个版本是无法自动合并的,因为无法知道以哪个版本为准。所以合并时存在三方:本地版本远端版本公共版本这里列的命令都能进行自动合并时,只是细节上不同。mergepushpullrebaserevertstashapply其中merge, push, pull, rebase是类似的,都是对两个分支合并,从分支溯源到公共结点,再进行三路合并自动合并时,公共版本节点
2021-01-12 17:54:26
327
原创 Blender自定义导入插件的编写
Blender自定义导入插件的编写背景在阅读《3D Game Engine Design》随书源码时,发现有大量的自定义的后缀为txt的模型文件。而且在其它书籍,如OpenGL红宝书中,也有类似的自定义模型数据,所以产生了将其加载到Blender来渲染的想法。此插件的功能就是加载定义模型文件。软件版本Blender: 2.81 (sub 16)OS: Windows 10 x64插件的安装打开路径为: Edit / Preferences… / Add-ons点击[Install.
2021-01-11 14:42:24
2236
原创 太阳高度与方向
太阳高度与方向背景本文要解决日常生活中的如下疑问:全球日出的方向角是一样还是不一样?日出时,太阳的高度角为零度,但方向角又是多少呢?北半球,春分与秋分那天,日出于正东,但正午太阳又偏正南方,太阳的轨迹又是怎样的?知道日期与时间,你能预测,太阳的具体位置吗?解答全球日出时,太阳的方向角是一样的,因为太阳光平行的,与地区的纬线圈平面夹角是一样的。意味着太阳的方向角一样。地球的自西向东旋转,可以
2017-11-29 09:47:44
1555
原创 交叉法在几何上的应用
交叉法在几何上的应用背景浓度A的溶液与浓度B的浓度,按多少比例可以配成浓度为C的溶液。其中C介于A,B之间。交叉法在处理浓度问题上的应用是很显然的。然而这个方法可以用于向量运算上。向量系数问题如图,如何用 OA→\vec{OA} OB→\vec{OB}表示OC→\vec{OC}呢?答案是, |CB||AB|⋅OA→+|CA||AB|⋅OB→=OC→\frac{|CB|}{|AB|}\cdot \ve
2017-11-28 09:25:34
932
原创 对数与指数函数的求导
Derivative of Logarithm and Exponential Function 背景在了解自然常数e与对数的历史背景之后,对其相关的问题有了兴趣。本文的根源来自对指数函数求导的困难.指数求导遇到的困难(ax)′=limdx→0ax+dx−axdx=limdx→0ax(adx−1dx)(a^x)' = \lim_{dx\to 0}\frac{a^{x+dx}-a^x}{dx}=
2017-11-27 08:53:48
10932
原创 变换矩阵的合并
变换矩阵的合并本文主要总结矩阵乘法的一些思考。点的平移与旋转可以用一个矩阵来完成吗?也就是说PTRPTR可以写成p(TR)p(TR)吗?这个问题等价于变换矩阵满足乘法的结合律.答案是肯定的,下面证明之,为简化描述使用2维齐次坐标系。首先说明一下矩阵乘法的一些性质:结果的行数为第一个矩阵行数列数为最后一个矩阵的列数乘法可以理解为各维度分量配上系数之和结合律证明假设三个矩阵A,B,CA,B,C的
2017-11-26 11:09:19
1683
原创 正余弦函数及其反函数导数推导
正余弦函数及其反函数导数推导背景三角函数的求导涉及到重要极限 limx→0sinxx\lim_{x\to0}\frac{sin x}{x} 的使用。 其反三角函数涉及复合函数求导。此文主要是对这两点知识的应用。三角函数求导sinxsin x(sinx)′=limdx→0sin(x+dx)−sin(x)dx(sin x)' = \lim_{dx\to0}\frac{sin(x+dx)-sin(
2017-11-25 23:22:46
22334
原创 叉乘分配律的几何证明
叉乘分配律的几何证明叉乘常被用于计算机图形学求平面法向量计算。 叉乘的物理意义可以理解成力矩。力是可以合成与分解的,所以叉乘当然支持分配律。 下面使用几何的方式证明:(a⃗ +b⃗ )×c⃗ =a⃗ ×c⃗ +b⃗ ×c⃗ (\vec{a}+\vec{b}) \times \vec{c} = \vec{a} \times \vec{c} + \vec{b} \times \vec{c}(a⃗
2017-11-24 09:26:46
18072
10
原创 圆面积公式积分法推导
圆的面积推导背景这个方法是本人独立发现的,维基上了有相同的证明,称为洋葱证法(Onion proof)。 通过个方法,能帮助理清类似的积分应该情形。圆的面积公式:S=πr2S = \pi r^2推导考虑从圆心以某一半径向外生长的方式,某一个半径r处,如果半径增量很少,面积增量可以看成2πrdr2\pi r dr, 即此处的柱面面积,生长速度即导数为2πr2\pi r关键点:增加面积为什么是可看
2017-11-23 09:31:59
23174
原创 旋转变换矩阵求逆
旋转变换矩阵背景坐标系之间相互转换涉及到变换矩阵的求逆,求逆是一个野蛮的过程,世界坐标系到观察坐标系之间的坐标转换,实际上就是坐标系的平移加旋转,而旋转与平移变换都要以简单得到其逆变换,从而绕过了对矩阵求逆的过程。下面求旋转变换的逆变换。绕各坐标轴旋转的矩阵的逆等于其的转置以绕z旋转为例x′=ρcos(α+θ)=ρ(cosα⋅cosθ−sinα⋅sinθ)=x⋅cosθ−y⋅sinθx' = \r
2017-11-22 10:15:10
16634
5
原创 Language ID
Language IDLanguage ID and Code PagesLanguage ID and Code Page are different concept.The language determines the text and data formatting conventions.A code page is a character set, which can includ
2015-08-26 11:15:55
5274
原创 XML
XMLNamespaceIf namespace isn’t correct, the SelectSingleNode will return null!If prefix has specified in xmlns, just like: xmlns:prefix_foo=”name-of-namespace”, all element under the namespace must s
2015-07-24 09:08:52
2831
原创 UAC
UAC and Security Shield IconUAC in WikiUser Account Control (UAC) is a technology and security infrastructure introduced with Microsoft’s Windows Vista and Windows Server 2008 operating systems. It ai
2015-07-16 23:39:09
2338
快速启动工具ToyKey源码 (VC++)
2013-01-10
.net大作业 坦克大战
2010-03-03
Blender自定义模型文件导入插件
2021-01-11
win32汇编实现贪吃蛇
2011-12-01
windbg原版英文帮助文档debugger.chm
2012-07-12
MASM32 VER 8
2009-09-14
Git: 怎样获得完整hash?
2017-07-07
如何在Android Studio中指定NDK位置?
2017-02-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人