楕円運動アニメ
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
*/
?>