楕円運動アニメ
Function ファイル
oval_func.php
Move Imageに戻る
<?php
function
oval
($r,$v,$vy,$k,$n,$cx,$cy,$dr,$ic)
{
$we="";
if($ic == 1){
$we="-webkit-";
}
$a = $k/$n;
for($i=0;$i<=$n;$i++){
$y =
$dr*$r*sin(deg2rad($v + $a*$i));
$x = $r*cos(deg2rad($v + $a*$i));
// 楕円を$vy°回転
$yn = $x*sin(deg2rad($vy))
+ $y*cos(deg2rad($vy));
$xn = $x*cos(deg2rad($vy))
- $y*sin(deg2rad($vy));
// 中心からの位置に移動
$y = $cy + $yn;
$x = $cx + $xn;
echo $i*(100/$n)."%{".$we.
"transform:translate(".$x.
"px,".$y."px);}";
}
}
/*
$r:半径
$v:スタート角度
$drがプラスのとき
0時位置から時計方向に動かす時は270
3時スタートは0
6時スタートは90
9時スタートは180
実際のスタ-ト位置は楕円の傾斜角度分
時計方向に移動します。
0時位置からスタートはさせるべく、
$v=270 としても$vy(楕円の傾斜角度)
を90とすると
3時の位置からスタートします。
$drがマイナスのとき
0時位置から時計方向に動かす時は90
3時スタートは0
6時スタートは270
9時スタートは180
$vy:楕円の傾斜角度
+で右肩下がり(時計方向に傾斜)
$k:周る角度、一周するときは360
$n:分割数、15ぐらいでよい、
大きいほど円に近づく
$cx:円の中心 X座標
$cy:円の中心 Y座標
$dr:円、時計まわりは→ 1、
円、反時計まわりは→ -1
-2<$dr<-1 反時計まわり、縦長
-1<$dr<-0.5 反時計まわり、横長
0.5<$dr<1 時計まわり、横長
1<$dr<2 時計まわり、縦長
$ic:ieとChromeの区別 0→ie 1→Chrome
*/
?>