« 2012年7月 | トップページ | 2012年10月 »

2012年8月

2012年8月25日 (土)

MathJax は v2.0 になっていた

MathJax のサイトを眺めていたら、バージョンは v2.0 になっているのに気が付きました。黒木さんのところの「MathJax の使い方」では v1.1 にリンクが張っているので、それが最新バージョンだと思っていました。

v2.0 での変更点は色々有るようですが、英語なのでよく解りません。とにかく次の2点は変わったようです。

  • SVG 表示が追加された
  • IE8 でも速くなった
そこで、オマジナイから
    <meta http-equiv="X-UA-Compatible" CONTENT="IE=EmulateIE7" />
の部分を削除しました。

実は MathJax を使っていて不満な点が有ります。タブレットでこのブログを見るとPC表示では数式が整形されません。また、最近、 Chrome では数式のルート記号が乱れています(IEでは問題なし)。ただ、このルート記号は SVG 表示にすると正常に表示されます。 Chrome の HTML-CSS 表示に問題が有るのでしょう。

そこで、 MathJax を SVG 表示にすればそれらが改善されるかもしれないと思って、オマジナイを変更してみました。そして、ブログ作成画面から[確認]ボタンを押して表示されたページを見ると、期待通りに数式が SVG で綺麗に整形されています。それで[保存]を押してから該当ページを見てみると、残念なことに数式は HTML-CSS 表示になってしまいます。たぶん、ココログが何か悪さをしているのでしょう。そんな訳で SVG 表示は失敗しました。なお、数式整形後に右クリックで SVG 表示に切り替えることは可能です。

ところで、今までは、オマジナイはその都度、記事の先頭にコピペしていたのですが、これをスクリプト呼び出しに変更しました。つまり、記事先頭には

    <script src="chomechome/reqmathjax.js" ></script>
だけを置くようにしました。 chomechome はスクリプトを置いている場所に読み替えて下さい。そして reqmathjax.js は次の通りです。

(function (){
    if (!window.MathJax){
        var mjConfig = document.createElement("script");
        mjConfig.type = "text/x-mathjax-config";
        mjConfig.innerHTML = "MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'],['\\\\(','\\\\)']] } })";

        var mathjax = document.createElement("script");
        mathjax.type = "text/javascript"
        mathjax.src = "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML";

        var head = document.getElementsByTagName("head")[0];
        head.appendChild(mjConfig);
        head.appendChild(mathjax);
    }
})();
このスクリプトにはIEに関するオマジナイは有りません。また、 MathJax が既に実行済みかどうかの判断は window.MathJax で行うように変更しました。この window.MathJax は MathJax.js 中で使用されているものです。

2012年8月21日 (火)

XHTML ⇒ HTML5

SVG+JS 版 FlatTable は今まで XHTML でしたが、これを HTML5 に変更しました。サフィックスは .html です。主な修正個所は以下の通りです。

変更前
<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> 

<head>

変更後
<!DOCTYPE html>
<html> 

<head>

ファイルの先頭部分を上記のように変更するだけで良いかと思ったのですが、JavaScript に関する部分も変更する必要が有りました。

変更前
<script>
<![CDATA[
・・・
]]>
</script>
<script xlink:href="js/FToperate.js" />
<script xlink:href="js/FTpeep.js" />
<script xlink:href="js/FTencode.js" />
<script xlink:href="js/FTinit.js" />
<script xlink:href="js/FTanimation.js" />

</svg>
変更後
</svg>

<script>
・・・
</script>
<script src="js/FToperate.js"></script>
<script src="js/FTpeep.js"></script>
<script src="js/FTencode.js"></script>
<script src="js/FTinit.js"></script>
<script src="js/FTanimation.js"></script>
変更前は SVG 領域に JavaScript を記述していたのですが、 HTML5 では SVG 領域の外に記述しなければならないようです。また、 JavaScript ファイルの指定も xlink:href から src に変更する必要が有りました。

変更前のファイルで JavaScript が SVG 領域に有った理由は次の通りです。当初 SVG+JS 版 FlatTable は SVG ファイルとして作る積りでいました。SVG ファイルの場合は JavaScript は SVG 領域に記述することになります。しかし、サーバーの設定がうまく行かず SVG ファイルを扱えなかったため、しかたなく XHTML(or HTML5) で対応することになりました。そして JavaScript の位置は初めのまま残っていたというわけです。

2012年8月 9日 (木)

キャロム用 FlatTable 公開

キャロム用 FlatTable が完成したので公開します。
FlatTable キャロム用( SVG+JavaScript 版)

サンプルを載せます。



画像の [ Anim ][ Sequential ] でアニメーションします。

これで FlatTable の SVG+JavaScript 対応は一応終了です。これ以後は、基本的にバグ修正のみとなります。

さて、次は何をやるか? タブレットでの MathJax の動作に気に入らないところが有るので、その辺を調べてみようかと思っています。かなり難しそうです。

2012年8月 2日 (木)

Stop and Go

先の記事「減速倍率」で、減速倍率が0というのは特別な意味を表すが、それについては後で述べるということになっていました。ここでその説明をします。

その記事にも有るように、減速倍率とはラシャの抵抗による球の減速を部分的に変更する機能です。ラシャの抵抗による減速の既定値を accel, 減速倍率を decel と置くと、経路中で減速倍率の設定された区間の減速量 eAccel

    eAccel = accel * decel
となります。

したがって、減速倍率が0ならば、 eAccel も0となるべきなのですが、それは意味が有りません。そこで FlatTable では、減速倍率0に対して特別な意味を持たせることにしました。その特別な意味とは、「減速倍率が0の時は、その位置で球の運動を一時停止させる」というものです。これによって、下図のようなアニメーションを実行することが可能となります。

1ページ目が、手球のゴーストの1つ(基礎球より少し上にズレた位置に有るゴースト)に減速倍率0を設定したものです。[ Anim ]⇒[ Single ]でアニメーションさせてみて下さい。手球は3番に当たった後、少し戻って停止します。この位置が、減速倍率0を設定したゴーストの位置です。その停止した手球に、バンクで戻って来た3番が当たって、手球は再び動き出します。

減速倍率0を設定していないのが2ページ目(画像左上の▲をクリック)です。これをアニメーションさせると、手球は途中停止せずに最後まで動き続け、バンクから戻って来た3番も手球にキスせずに進路だけ変更して行きます。

この機能のお蔭で、アニメーションの表現力が豊かになりました。因みに、近い内に公開予定のキャロム用 FlatTable では、ボークライン(カードル)をアニメーションさせる時、必須の機能となるでしょう。

« 2012年7月 | トップページ | 2012年10月 »