你永远不知道的那些骚操作(Coding纪实)

发布于 2020-03-20  13 次阅读


一个简单的两点间的连线的概念,实际上常规的公式计算的是长度信息,在一幅图片里面由于采用的是像素的概念,这里就需要有一个参照系,相应的计算结果貌似就不那么可信了

假设直接计算斜边距离,距离公式推算(同时取整+0.5进位)

l = sqrt((y2-y1)* (y2-y1) +(x2-x1)*(x2-x1));
int _l_ = (int)(l+0.5)

斜面的点的个数是否正确?假设这是一个简单的二维面,每个像素点都有值,那么如何获取这个斜面上各个点的坐标?

假定以左侧的点为起始点(实际上确实是),那么以底边为参照线,实际上可以通过斜率计算得到斜面信息,但是有几个问题

1.像素数目变成了

int pixel = abs(x1,x2);

2.斜率k的浮点数问题

float k = (y2-y1)*1.0.(x2-x1);

3.计算取坐标问题

(x,y) = ((x_start+i),(int)(i*k+y_start));

4.像素值读取问题(反转)

int pixel_ = readPixel(hBoard,BUFFER,0,y,x);

注意实际的二维坐标系和二维数组坐标系的区别即可,读反了容易造成越界操作,导致卡死,卡退之类

变提示字操作

最简单的就是单按钮复用,既负责打开也负责关闭,这时候就需要变提示字操作,后台操作还是比较简单的