Skip to content

20170708

gyosib edited this page Jul 8, 2017 · 1 revision

今川

やったこと

前回に引き続き、形状情報を正確にとれたという前提で、回転できうる角度を探った。

結果

回転後の1つの図形の形状情報一覧をとることができた。ただし、誤差がある。

処理

まず、
http://www.procon.gr.jp/wp-content/uploads//2017/04/8db30280f6638520be40ad86b4bf1b37.pdf
の形状情報の例を参考にx座標を下方向、y座標を右方向と考えた。これを90°左回転すると普通のデカルト座標になるため。
そして、元々の形状情報は時計回りで与えられる。この最初の2点をp0(x0,y0)、p1(x1,y1)とする。

  1. 各辺の長さを求めた(l0 (p0〜p1), l1 (p1〜p2), …, ln)
  2. arccos((y1-y0)/l0)からy軸とl0が成す角度を調べる(θ0)
  3. x1-x0が0になるような角度を調べる θ=(x1-x0)/l0=0 
  4. 角度差を調べる Δθ=θ0-θ
  5. p0=(0,0)となるように全ての座標を平行移動し、回転行列を用いて全ての座標をΔθ回転させる
  6. 3〜5をx1-x0={Δx|-l0<=Δx<=l0, Δx∈Z(整数)}の範囲で繰り返す
  7. 各回転後の座標を出力する

入力
p(3,3),p(3,6),p(7,6),p(7,3)
出力
0,0 -3,1.83697e-16 -3,4 2.44929e-16,4
0,0 -2,2.23607 0.981424,4.90273 2.98142,2.66667
0,0 -1,2.82843 2.77124,4.16176 3.77124,1.33333
0,0 0,3 4,3 4,0
0,0 1,2.82843 4.77124,1.49509 3.77124,-1.33333
0,0 2,2.23607 4.98142,-0.430599 2.98142,-2.66667

それらしきものだけ図示

Clone this wiki locally