感觉计算几何还是一如既往地不会
如果这样的话,比赛出了简单的计算几何就会很亏。。
并且听说ACM很多计算几何
那还是学点皮毛吧(雾
反正出了我也不会
这个东西感觉还是很常用的啊
并且推导也很简单
点的旋转
比如说这个图,由A点旋转到B点
首先,可以知道,长度
r
r
r肯定是不会变的
于是我们先表示出
r
r
r
r
c
o
s
α
=
x
rcosα=x
rcosα=x
r
s
i
n
α
=
y
rsinα=y
rsinα=y
尝试表示
(
s
,
t
)
(s,t)
(s,t)
s
=
r
c
o
s
(
α
+
β
)
=
r
c
o
s
α
c
o
s
β
+
r
s
i
n
α
s
i
n
β
=
x
c
o
s
β
−
y
s
i
n
β
s=rcos(α+β)=rcosαcosβ+rsinαsinβ=xcosβ-ysinβ
s=rcos(α+β)=rcosαcosβ+rsinαsinβ=xcosβ−ysinβ
t
=
r
s
i
n
(
α
+
β
)
=
r
s
i
n
α
c
o
s
β
+
r
c
o
s
α
s
i
n
β
=
y
c
o
s
β
+
x
s
i
n
β
t=rsin(α+β)=rsinαcosβ+rcosαsinβ=ycosβ+xsinβ
t=rsin(α+β)=rsinαcosβ+rcosαsinβ=ycosβ+xsinβ
坐标系的旋转
可以用同样的方法推导
但其实,坐标系的旋转就相当于点往相反的方向旋转
把上面的
β
β
β改为
−
β
-β
−β就可以了
可以得到
s
=
r
c
o
s
(
α
+
β
′
)
=
r
c
o
s
α
c
o
s
β
′
+
r
s
i
n
α
s
i
n
β
′
=
x
c
o
s
β
′
−
y
s
i
n
β
′
=
x
c
o
s
β
+
y
s
i
n
β
s=rcos(α+β')=rcosαcosβ'+rsinαsinβ'=xcosβ'-ysinβ'=xcosβ+ysinβ
s=rcos(α+β′)=rcosαcosβ′+rsinαsinβ′=xcosβ′−ysinβ′=xcosβ+ysinβ
t
=
r
s
i
n
(
α
+
β
′
)
=
r
s
i
n
α
c
o
s
β
′
+
r
c
o
s
α
s
i
n
β
′
=
y
c
o
s
β
′
+
x
s
i
n
β
′
=
y
c
o
s
β
−
x
s
i
n
β
t=rsin(α+β')=rsinαcosβ'+rcosαsinβ'=ycosβ'+xsinβ'=ycosβ-xsinβ
t=rsin(α+β′)=rsinαcosβ′+rcosαsinβ′=ycosβ′+xsinβ′=ycosβ−xsinβ