一些奇怪的东西?

版权声明:欢迎转载欢迎评论! https://blog.csdn.net/rabbit_ZAR/article/details/85264340

点到链的距离

设点 k k ,链的端点 ( i , j ) ( i , j ) ,点到链的距离为 D D

定义 d [ i , j ] d [ i , j ] 表示点 i i 到点 j j 的距离。

可得 D = d [ i , k ] + d [ j , k ] d [ i , j ] 2 D=\frac{d[i,k]+d[j,k]-d[i,j]}{2}

原理如图:

在这里插入图片描述


矩形的相交区域坐标

在这里插入图片描述

设黑色矩形左上角坐标 ( x1 , y1 ),右下角 ( x2 , y2 ) ;

红矩形左上角坐标 ( a1 , b1 ),右下角 ( a2 , b2 )。

根据重点公式,可以算出 O 1 = ( x 1 + x 2 2 , y 1 + y 2 2 ) O 2 = ( a 1 + a 2 2 , b 1 + b 2 2 ) O1 = ( \frac{ x1 + x2 }{2} , \frac{ y1 + y2 }{2} ) ,O2 = ( \frac{ a1 + a2 }{2} , \frac{ b1 + b2 }{2})

所以相交的条件就是:

a b s ( x 1 + x 2 2 a 1 + a 2 2 ) < = x 2 x 1 2 + a 2 a 1 2 abs(\frac{ x1 + x2 }{2}-\frac{ a1 + a2 }{2})<=\frac{x2-x1}{2}+\frac{a2-a1}{2}

a b s ( y 1 + y 2 2 b 1 + b 2 2 ) < = y 2 y 1 2 + b 2 b 1 2 abs(\frac{ y1 + y2 }{2}-\frac{ b1 + b2 }{2})<=\frac{y2-y1}{2}+\frac{b2-b1}{2}

整理得

a b s ( x 1 + x 2 a 1 a 2 ) < = x 2 x 1 + a 2 a 1 abs( x1 + x2 - a1 - a2)<=x2-x1+a2-a1

a b s ( y 1 + y 2 b 1 b 2 ) < = y 2 y 1 + b 2 b 1 abs( y1 + y2 - b1 - b2)<=y2-y1+b2-b1

判断完相交,就是求相交部分的坐标了。

也很好看出来,左上角是 ( m a x ( x 1 , a 1 ) , m i n ( x 2 , a 2 ) ) ( max(x1,a1) , min(x2,a2)) ,右下角是 ( m a x ( y 1 , b 1 ) , m i n ( y 2 , b 2 ) ) (max(y1,b1),min(y2,b2))


假的范围?

对于一些大得诡异的数据范围,可以先计算下是不是真的需要处理这么大的范围。

有时候数据大到一定程度可以直接输出不用考虑。


猜你喜欢

转载自blog.csdn.net/rabbit_ZAR/article/details/85264340
今日推荐