0

角度が与えられ、バウンディング ボックスの中心から線を引いた場合、線がバウンディング ボックスと交差する座標をどのように計算できますか?

次の図を見てください。 ここに画像の説明を入力

ご覧のとおり、たとえば、角度 0 で直線は点 (0.5, 1) と交差します。

この問題を、角度を受け入れて x 座標と y 座標を返す計算可能な式に変換するにはどうすればよいでしょうか?

4

1 に答える 1

1

三角法を使用し、各 45 度のセクションを個別に処理することで解決できます。

与えられた:

  • xmin、xmax (ボックス領域の x 軸の制限)
  • ymin、ymax (四角で囲まれた領域の y 軸の制限)
  • a (角度)
  • x と y の出力座標
  • 幅 = (xmax - xmin)
  • 高さ = (ymax - ymin):

角度範囲; バツ; y

  • (0<= a <= 45); x = xmin + (tan(a)*(幅/2) + 幅/2; y = ymax
  • (45<= a <= 90); x = xmax; y = ymin + (tan(90-a)*高さ/2) + 高さ/2
  • (90<= a <= 135); x = xmax;y = ymin + (tan(a-90)*高さ/2) + 高さ/2
  • (135<= a <= 180); x = xmin + (tan(180-a)*幅/2)+幅/2; y = ymin
  • (180<= a <= 225); x = xmin - (tan(a-180)*幅/2)+幅/2; y = ymin
  • (225<= a <= 270); x = xmin; y = ymin -(tan(270-a)*高さ/2)+高さ/2
  • (270<= a <= 315); x = xmin; y = ymin + (tan(a-270)*高さ/2)+高さ/2
  • (315<= a <= 360); x = xmin -(tan(360-a)*幅/2)+幅/2; y = ymax
于 2012-09-07T16:52:08.550 に答える