トピック
みな♪ pochi37

円が座標X,Yと重なっているか

何故か三角関数系がトピックで目につくのは何故かと思いながら質問。 座標X,Yを中心とした半径Rpxの円形が、座標X2,Y2に触れたとかどうかは、どのように判定すれば良いのでしょうか。 イメージでは円形が描かれていますが、式で求められれば、そちらの方が良いです。
2そうだね
プレイ済み
返信[1]
親投稿
だにえる haru2016nen
SPを回転させて、 SPHITRCをするという方法がある
1そうだね
プレイ済み
返信[2]
親投稿
だにえる haru2016nen
円中心からX2,Y2までの距離と 円の半径が等しいかを調べるとか
1そうだね
プレイ済み
返信[3]
親投稿
だにえる haru2016nen
X2=円の中心からX2までの絶対値 Y2=同様 IF R==SQR(POW(X2,2)+POW(Y2,2)) だっけ
1そうだね
プレイ済み
返信[4]
親投稿
ΖΕΧ ZEX256
こうかな IF SQR(POW(X2-X,2)+POW(Y2-Y,2)) <= Rpx THEN ?"接触" ELSE ?"外"
1そうだね
プレイ済み
返信[5]
親投稿
だにえるs 「ぴったりの==」だと演算誤差で合わないかもしれないので0.1とか適当な誤差を許容するようにしないと反応しない場合あり?
1そうだね
プレイ済み
返信[6]
親投稿
はる HARUHI-0913
貴方のトピック「SPの向きに移動」にコメントした者です。 別に自分は三角関数が分からない訳ではなく、三角関数を使わなくても出来ますよということを言っただけです。
0そうだね
プレイ済み
返信[7]
親投稿
みむ*mim hidemimtp
円内にX2,Y2があるか、ならZEXさんので。 円上(円形の線)に乗っているかなら、コンピューターではドット単位に丸められるので、あまさとさんのように誤差でほぼイコールにはなりませんので、ZEXさんの式のSQR(~)を距離Kとすると、 IF ABS(K-R)<2 THEN~ みたいにする必要があります。 そしてもしゲーム上でもしX2,Y2の点がもっと速く動くなら、1フレームで線をまたいでしまう可能性もあるので注意です。
1そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
GCIRCLEで描いた円と特定座標との判定ならばGSPOITを使うのが一番簡単だし正確な判定が可能です。 ただし、円が動く場合には判定漏れが起きてしまうし円の内部も含めるというのであればZEXさんの方法がベターでしょう、
1そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
ちなみにGSPOITを使いつつ判定漏れを限りなく0にする方法はあります。 毎秒60回ではなく毎秒600回等の極めて高速な判定を行えば良いだけです。 ただし、よほど処理速度に余裕がないと難しいため「こういうやり方もある」というのを覚えておく程度で良いかもしれません。 60fpsのゲームだからといって判定もそれと同期させる必要は全くないのです。(精密な当たり判定を行うため120fps、240fpsの判定は良く使われる)
0そうだね
プレイ済み
返信[10]
親投稿
みな♪ pochi37
なるほど... (ヨミヨミ (ヨミヨミ (ヨミヨミヨミヨミ (ヨミヨミヨミヨミヨミ...ヨミ?アァ、ヨミヨミ (ヨミミミミミミ… 距離を測ると、円の中に入ったかどうかを調べられるのですね。こんな見方もあったのか、と非常に参考となります。 三角関数の件は、すみませんでした。自分でも、他の例があったかな、と思っております。90°というキリのいい数字では、そのように受け取られても不自然ではないな、と思いました。 (「すみません」入力後に【♪:ね:ねぇ】とか予測が出てるのだが
0そうだね
プレイ済み
返信[11]
親投稿
みな♪ pochi37
書き忘れてました。閉めさせていただきます。ありがとうございました。 (フランス在住の  さんが気になる
0そうだね
プレイ済み