这个外挂剩余的部分也非常的简单:
1、算术运算部分:主要涉及到解平面直线与直线直线与圆位置关系,用AX+BY+C=0这个形式解比较简单,斜截式用处不大,圆就是一般方程:(X+A)^2+(Y+B)^=R^2,我们构造如下的一个直线方程类:
class line
public a as double
public b as double
public c as double
public sx as double
public sy as double
public dx as double
public dy as double
public l as double
shared function getlen(line as line) as double
end function
.....
.....
end class
大体就是这样,其中l就是这个线段的长度,而sx,sy,dx,dy分别是这个线段的起点和终点坐标了。接下来解方程自己写吧,没大意思,但是注意解直线与圆前先用圆心与直线距离判断一下有几个交点。
2、颜色拾取部分
截图已经介绍过了,基本就是利用GRAPHICS对象的COPYSCREEN或者传统API,下一步就是扫描图像,需要注意的几点:
A、隔行扫描,不要挨个像素都读,会很慢
B、如果重复读写图像时,则使用一个缓冲区或表:table(x,y),读写这个表要比BMP对象读写快得多
C、如果需要进行颜色近似识别,最好从RGB三维空间考虑,不要考虑ARGB空间,我使用的方法是判断读到的点是否在RGB三维空间内自定义的准线所在圆锥内,表述比较麻烦,实际上就是一个非常简单的三维空间向量几何的基本公式,速度和准确性比较平衡,当然也不是说不能用传统的方式:先二值,然后再处理,不过不能不说二值化某些时候不是一个好的处理方式,虽然很多人都迷信的在处理图片时首先来个二值化,何必呢,让宝贵的运算时间浪费在无用的工作上。
没什么说了,其他都非常简单。
最近写一个化学式输入助手,接近尾声了,下午用了20分钟时间解决了一个在网上没有找到答案的问题:WORD中插入符位置的获取,这个用WIN API取的与实际位置有差异,但实际上用不到那么“高深”的玩意,用.NET 2008写代码包括FUNCTION END FUNCTION一共五行……准确程度没的说。。。准备发布一个测试版本,希望大家提出宝贵的意见。