2012年7月23日月曜日

svg2.0で追加されるかもしれない機能のリスト


現在検討中のsvg2.0ですが,具体的にどんなことが可能となるのか調べて見ました.なお,リストアップしたものも今後どうなるか判りませんが,非常に興味深いものとなっています.つーか,実際に使えるようになるのは相当先なんだろうな.


概ね次のようなことを念頭にしているように見えます.
  1. svg tiny 1.2の機能を一部導入する.
    でも捨てられる機能も結構あるみたい.
  2. html5との互換性を高める.
    ドラッグドロップ,canvas要素,css3その他.ますますsvgの文書としての立ち位置が明確に.
  3. InkMLとの連携を容易に.
    可変幅ストロークの追加.
  4. 使いにくかった機能の改善.
    パスとか,破線とか,グラデーションとか.
  5. アニメーション機構の強化.
    smilから色々輸入.
  6. dom構成のさらなる洗練.
    現状のままだと使いにくい.
  7. 曖昧だった仕様を明瞭に.
    ブラウザの実装例が出揃った所で仕様の穴を埋めていく.こればっかりは仕方ない.
参照元
http://www.w3.org/Graphics/SVG/WG/wiki/SVG2_Requirements_Commitments

以下そのリスト.間違いがあっても気にしない.だってまだ決まってないんだもん.
  • [3]z-indexの追加.
    要素順をいじらずに描画順を決定できるのは地味に有用.
  • [4]図形の境界をピクセルのどこに揃えるかの指定.
    crispEdge時に利用する?
  • [5]生成した図形についてdomを保持せず単なる画像として扱う.
    domを保持しないので,メモリーの削減が見込める.
  • [12]SVGListオブジェクトをもっと配列ライクに扱えるようにする.
    現状独自APIのため,実装が面倒.
  • [13]SVGDOMを経由した属性値の設定をもっと簡単に.
    現状elem.x.baseVal.valueで操作しているのをもっと簡略化するようだ.
  • [14]SVGPathElementの操作をもっと簡単に.
    canvas要素っぽく操作できるようにしたいようだ.
  • [16]図形要素のboundingBoxを取得するapiを追加.
    Raphaelでは既に独自実装している.
  • [17]image要素にveiwBox属性を指定可能に.
    画像の切り抜きが可能となるので地味に便利な機能かもしれない.
  • [18]image要素にwidth,height属性を指定しなかった場合は自動的に画像のサイズが設定される.
    htmlのimg要素と同様の動作となる.
  • [19]詳細度コントロールの追加.
    巨大なsvg画像セット(例えば世界地図〜地域地図を含んだ図形セット)を制御する仕組みを指している?(おそらく日本からの要求)
  • [20]InkMLの描画に対応.
    InkMLにはストロークの強さと言った情報があるので,そのために可変幅ストロークといった機能を追加する必要がある.
  • [21]svg要素に対するtransformを有効に.
    確かに入れ子のsvg要素には必要だね.
  • [22]smil3のallowReorder属性に相当する機能の追加.
    switch要素によるアニメーションの制御のことか?
  • [23]use要素においてsvg文書そのものを設定可能に.
    現在は文書切片(#id付き)でのみ指定可能.
  • [30]図形のプロパティの一部・全部を固定する.
    例えば矩形の角の半径(rx,ry)をtransform/scaleの影響を受けないようにする(?).
  • [31]strokeによる線の描画位置の制御.
    図形領域の外側のみ(→htmlでのborderっぽい動作に)/内側のみ等を設定可能とする.
  • [32]破線の端点設定をもっと詳細に.
    現行ではstroke-linecapが破線部の設定に引き継がれているがこれを分離する.
  • [33]破線のスケール設定をもっと詳細に.
    図形のサイズを基準とした破線を引くことができる他,角部分の描画を制御することが可能となる.
  • [34]ハッチング(斜線)による塗り潰しを設定可能に.
    PostScriptでは簡単にできるのにーってことらしい.
  • [37]boundingBoxを取得する関数をもっと細かく設定可能に.
    stroke,markerの描画部も念頭に入れる.
  • [38]図形の角を基準とした回転を指定可能に.
    現在は原点中心もしくは指定した座標中心のみ.
  • [39]パスの共通部分に対する処理を可能とする.
    具体的にどうなるかはわからないけれど,意外に期待できる機能かもしれない.
  • [40]Catmull-Rom curvesによるスプライン曲線の描画に対応.
    単に複数の点を滑らかに繋ぎたいだけの場合にありがたい機能.なお,この機能を実現するスクリプトライブラリは存在している.
  • [41]極座標によるパスの指定.
    確かに正多角形や星型を描く場合に有用だ.
  • [42]円弧を描画する際に角度指定を可能とする.
    現在は端点で指定するので面倒.
  • [43]パスに沿った図形の描画を可能とする.
    textPathっぽい用途を可能とするらしい.
  • [44]自動的にテキストを図形で囲む.
    地味だが,フローチャートや組織図の描画に威力を発揮するはずだ,とある.
  • [45]テキストの整列の拡張.
    異なるサイズのテキストの整列に関わるものとして検討されている?
  • [46]textPathにstretch機能を追加.
    文字を引き伸ばして,パス全体にゆき渡るようにするってことだろう.
  • [47]文字列の反転に対応する.
    えっ?今のままだとできないんだ.
  • [50]メッシュグラデーションの追加.
    グラデーション機能が大幅に進化.illustratorの機能を取り込んだものか?
  • [52]ツールチップの表示を指定.
    現状では実装がバラバラである部分をもっと明確にする.
  • [53]ポインターイベントの発生条件に図形の描画領域を加味する.
    image要素に設定されたpath図形の外部ではイベントを発生させない等.(おそらく)
  • [54]アンカーイベントanchorActivated, anchorTargetedの追加.
    htmlでのhashchangeイベントと同等+αを提供.
  • [55]ドラッグドロップイベントの追加.
    html5と同様.
  • [56]マウスイベントの発生をfill領域とstroke領域とで区別可能とする.
    それほど意味が有るとは思えないが,あったらあったでなんか利用法は有るかも.
  • [58]smileの時間操作モジュールの追加.
    アニメーション速度の指定が可能になる?.
  • [59]アニメーションの定義をもっと柔軟に.
    現在は(最も柔軟なものとしても)spline曲線による設定のみだが,これをもっとバリエーション豊かにする?
  • [60]animateTransformの定義を明確に
    transform属性に関数が複数設定されていると,animateTransformの動作が曖昧になる.
  • [61]cssのtransitionのようなアニメーション機構を追加する.
    確かにこれはそうだろう.あって損はない.
  • [62]アニメーション可能属性の追加.
    例えばテキストの開始位置を滑らかにstartからendに変える等.(要るの?)
  • [63]animateTransformのtypeにlistを追加する.
    内部ではmatrixでのアニメーション変形を行うとの由.
  • [64]アニメーションを速度で設定可能とする.
    意外に便利かも.
  • [67]switch要素の動作の改善.
    例えば,ブラウザで解釈不能な要素が存在した場合の処理の切り替えなど.
  • [69]ポインターイベントにおけるポインター位置の取得を簡単にする.
    ブラウザによってバラバラなのを何とかするっぽい.
  • [72]ズームとパン処理をもっと簡単に.
    いちいちtransform属性を操作するのは面倒.
  • [73]css3の単位に合わせる.
  • [75]video要素に対応する.
    svg tiny 1.2からの導入.
  • [77]メディアに関わる要素に属性を追加する.
    キャプションとか.
  • [78]フォントの描画処理の拡張.
    スクリプトからの文字描画をもっと細やかに.ってことかしら?
  • [80]テキストをpathに変換するメソッドの追加.
    これは地味に嬉しいかもしれない.
  • [81]パスからパスへの変形アニメーションを可能に.
    Raphaelでは一応可能.
  • [90]Constrained Transformationsへの対応.
    svg tiny 1.2の仕様を取り込む.
  • [91]正確なboundingBoxの定義.
    svg tiny 1.2の仕様を取り込む.
  • [95]svt tiny 1.2のanimation要素の機能を導入する.
  • [97]同期機能の追加.
    ちょっと良くわからない.
  • [98]フォーカス機構の導入.
    html5との互換性を考慮したものとなるとある.
  • [99]フォーカスの指定,変更を可能とする.
    同上.
  • [108]インラインスクリプトの実行規則についての規定を追加.
    html5と同じように.
  • [112]foreignObjectでxlink:href属性が有効に.
    html文書が外部参照可能となる?
  • [113]Micro dom(svg tiny用のapi)のデザインを参考とする.
    svg domの改善を行う際の参考とするらしい.
  • [115]color属性に新たな値を追加.
    strokeとfillに関わるものを追加.
  • [116]焦点を指定したradialGradientの仕様を明確化.
    現状,曖昧な点が有るらしい.
  • [117]radialGradientに焦点半径の属性を追加.
  • [119]css3/css4との連携を強化.
    いろいろ仕様に取り込む必要があるらしい.
    • SVG2 will depend on CSS2.1
    • SVG2 will depend on CSS3 Fonts
    • SVG2 will depend on CSS3 writing modes
    • SVG2 will depend on CSS3 Color
    • SVG2 will depend on CSS3 Media Queries
    • SVG2 will depend on CSS3 Image Values and CSS4 Image Values
    • SVG2 will depend on CSS style attribute syntax
    • SVG2 will depend on CSS3 Selectors and CSS3 Namespaces
    • SVG2 will depend on WOFF
    • SVG2 will depend on CSS UI and CSS Values and Units
  • [120]グリフのパス情報を取得するapiを追加.
  • [122]パスの回転コマンドの追加.
    詳細不明.スプライン曲線の描画に関連している?
  • [128]一番外側のsvg要素に対するborder・backgroundの指定についての仕様を追加.
  • [129]svg要素にアウトライン属性を定義.
    詳細不明.
  • [130]svg要素に対するポインターイベントの発生を明確化.
  • [133]smilのタイムコンテナ機能を導入.
    アニメーションの同期に関わるものか.
  • [134]アニメーションのトリガーにkeyを追加.
    ちょっと良くわからない,が現行のaccessKeyは使いにくいと思う.
  • [135]コンテナ要素が初期化されてからアニメーションを開始する.
  • [138]mask処理において,輝度か不透明度の選択可能とする.
    現状は輝度のみ.
  • [139]canvas要素の追加.
    ちょっと笑える.これで漸くsvgとcanvasのどっち使うか論争が終結するかも.
あれっ?誰もフィルターに関して言及していない.これは既にみんな満足してしまっているのか,誰も使ってないから文句が出ないってことなんだろうか?まぁ優先順位の問題なんだろうが.

0 件のコメント:

コメントを投稿