关于网络传输部分的重大Bug!
对象:Canteen Server & Client Version < 20070219
现象:打开Server&Client,然后关闭任一,再重开,可发现只有数据报发送数量达到上次数量后对方才能收到。
原因:目前的ID计算方法!
目前的ID:6,11,16,21,....
重开之后,ID从头开始,随后…… 另一方认为都是重号,只有大于上一次的才被认为是新的。
潜在影响:多客户端完全不能工作。
解决方案:采用双LongInt序列号,第一个启动时随机生成,然后保持,标记不同的实例。
正在解决中,预计今天可解决。
问题已解决。
谢谢JohnJin同学的显示序列号设计,让我发现了每次都是到和上次一样多的时候恢复正常,由此想到序列号。
请到FTP上下载新的SockUnit。
2007年2月19日
2007年2月7日
靶图的变换
我不知道JOHN JIN是用什么方法算的,不过我已经用线代的方法解决了,不过有待试验,JOHN JIN可以把你的方法也说一下。
我的方法:
由于
[x y]' = M(2*4) * [x y xy 1]'
所以仅需知道四个点的在两个图中对应的坐标,分别列出4个方程(实际上也就4个方程就够了),就可以求出M的值,即可以对图像进行变换操作。
算法已经在TI上验证。
PS:
即是解这个矩阵:
+----------------------+
| x1 y1 x1y1 1 | X1 Y1 |
| x2 y2 x2y2 1 | X2 Y2 |
| x3 y3 x3y3 1 | X3 Y3 |
| x4 y4 x4y4 1 | X4 Y4 |
+----------------------+
->[I(4)|M']
我的方法:
由于
[x y]' = M(2*4) * [x y xy 1]'
所以仅需知道四个点的在两个图中对应的坐标,分别列出4个方程(实际上也就4个方程就够了),就可以求出M的值,即可以对图像进行变换操作。
算法已经在TI上验证。
PS:
即是解这个矩阵:
+----------------------+
| x1 y1 x1y1 1 | X1 Y1 |
| x2 y2 x2y2 1 | X2 Y2 |
| x3 y3 x3y3 1 | X3 Y3 |
| x4 y4 x4y4 1 | X4 Y4 |
+----------------------+
->[I(4)|M']
订阅:
博文 (Atom)