javascriptと三角関数の3:目のフォロー効果
1327 ワード
まず最後の効果を見ます.
構想を実現する目をマウスと一緒に動かすためには、まず目の座標、つまりleftとtop値 を求めなければなりません. leftとtopの値を取るために、私達は知っています.α角の内側の三角形の2辺と隣の長さは です.相手と隣の辺を取るために、私達は知っているだけです.α角のラジアンは です.α角の弧度は、図中のa辺とb辺を通じて、 を求めることができます. a辺の長さは、マウスy軸の座標− である. b辺の長さは、マウスx軸の座標− である.
部分的に実現する
offsetXとoffsetYを計算します.
上ではleft値とtop値を取得しましたが、これは0~90度、つまり第四象限でいいです.四象限については前の図を示します.
マウスを第三象限に落とした時、計算された角度は90~180度であるべきです.
構想を実現する
arctan(a/b)
を使って、部分的に実現する
offsetXとoffsetYを計算します.
// left top , offsetX offsetY
var wLeft = $('.wrap').offset().left
var wTop = $('.wrap').offset().top
//
var r = 12
a辺とb辺の長さを計算します.// b
var diffX = ev.pageX - (wLeft + r)
// a
var diffY = ev.pageY - (wTop + r)
計算するα // α
var deg = Math.atan(Math.abs(diffY) / Math.abs(diffX))
内三角形の2辺と隣を計算します.//
var x = Math.cos(deg) * r
//
var y = Math.sin(deg) * r
目のleft値とtop値を計算します.var left = (r + x) + 'px'
var top = (r + y) + 'px'
四分制限角度の問題上ではleft値とtop値を取得しましたが、これは0~90度、つまり第四象限でいいです.四象限については前の図を示します.
マウスを第三象限に落とした時、計算された角度は90~180度であるべきです.
deg = Math.PI - deg
マウスを第二象限に落とした時、計算された角度は180度から270度であるべきです.deg = Math.PI + deg
マウスを第一象限に置いた時、計算された角度は270度から360度であるべきです.deg = 2 * Math.PI - deg
最終効果と具体的な実現を確認するには、力を入れてください.