• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マウスの入って来た方向を検出するホバーエフェクト)

マウスの入って来た方向を検出するホバーエフェクト

このQ&Aのポイント
  • マウスの入って来た方向を検出するホバーエフェクトの作り方と特徴
  • マウスの方向を検出する関数の解説と使用する三角関数の役割
  • jQueryを使用してマウスの方向を検出してホバーエフェクトを実装する方法

質問者が選んだベストアンサー

  • ベストアンサー
  • usami33
  • ベストアンサー率36% (808/2210)
回答No.1

まずは x = (event.pageX - offset.left - w / 2) * ((w > h)? h / w: 1), 置き換えると x = (マウスの位置 - 要素の座標 - 要素サイズの半分) * ((w > h)? h / w: 1), x = (要素の中心からの距離) * ((w > h)? h / w: 1), x = (要素の中心からの距離) * 要素の縦横比(アスペクト比), x = アスペクト比を考慮した円周上の点    ※縦横が同じ比なら真円、異なれば楕円上の座標 つぎは direction = Math.round((Math.atan2(y, x) * (180 / Math.PI) + 180) / 90 + 3) % 4; direction = Math.round((Math.atan2(y, x) * (180 / 円周率) + 180) / 90 + 3) % 4; direction = Math.round(ラジアン * (180 / 円周率) + 180) / 90 + 3) % 4; direction = Math.round(角度 + 180) / 90 + 3) % 4; この段階で、中心からの角度となりますが、負の値も含むので、180度足して正の値の角度にします direction = Math.round(角度 ) / 90 + 3) % 4; で/ 90で4方向に分け、+3で端数切り上げ roundで四捨五入して% 4でふたたび4等分 ※ここの計算はかなりくどいですね、なんでもっと簡単な式にしないのだろうか?

tmctmc
質問者

お礼

ご説明本当にありがとうございます。m(_ _)m 全く分からなかったのでこれでどのような仕組みか何となく分かりました。m(_ _)m アスペクト比をかけるのはどういったような意味があるのでしょうか。 試しにアスペクト比を無くしても機能しました。 また、最後の+3で端数切り上げという事ですが、これをする事で0が3になり、1が0になり、2が1になり、3が2になりますが、 これをする事で、switchに返る数を調整しているという事でよろしいのでしょうか?

関連するQ&A