円形UFOとレーザーの当たり判定

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
Cr
記事: 93
登録日時: 8年前

円形UFOとレーザーの当たり判定

#1

投稿記事 by Cr » 8年前

http://judge.u-aizu.ac.jp/onlinejudge/d ... sp?id=0204
AOJのこちらの問題を綺麗に書こうと考えています。
Acceptedはもらえたのですが他に解き方は無いか教えてください(特に当たり判定)
ソースコード
► スポイラーを表示
図は
中央赤丸  :レーザー無効範囲
色つき円  :標的UFO
色なし緑円 :判定UFO
中央から延びる直線:レーザー 点線部は無効範囲 実線部は有効範囲
当たり判定は
①判定UFOからPまでの距離が半径より長ければtrue
画像
②判定UFOから引いた垂線の足がレーザーの有効範囲にいるかのチェック
判定UFOの中心と標的UFOの中心を結んだ直線と
レーザーと赤円の交点を通り、レーザーに垂直な直線の交点(黄色丸)が
判定UFOと標的UFOの間にあればfalse
画像
間に無ければ範囲内にいることだけは確定(true、falseはまだ判断つかない)
画像
③判定UFOの中心からレーザーにおろした垂線の長さが半径より短ければtrue長ければfalse
画像
としています。
正直マジックナンバーだらけで気持ち悪くって…
どうすればきれいに書けますか?
また、他にどんなとき方があるのか教えてください。

“C言語何でも質問掲示板” へ戻る