2

SVG では、パスの塗りつぶしとして使用できるパターンを定義できます。私が意味することの例については、このリンクを確認できます: SVG パターンの例。残念ながら、古いバージョンの Internet Explorer では SVG を使用できないため、そこで VML を使用する必要があります。

生活を少し楽にするために、私は Raphaël JS を使用しています (より具体的には、Raphaël に基づく ExtJS 4.0 の draw パッケージを使用しています)。そのため、SVG と VML の違いについて心配する必要はありません。

ただし、Raphael JS にはパターンを定義して使用する方法が用意されていないため、手動で行う必要があります。SVG ではこれは大した問題ではありませんが、VML ではパターンを作成し、それをパスの (繰り返し) 背景として使用する方法を見つけることができません。

私が見つけた最も近いものは、ここ MSDN で説明されているように、パスの背景として画像を使用する機能です。問題は、繰り返しのベクター画像でパスを塗りつぶしたいので、拡大縮小しても見栄えが良いことです。

これを解決するための正しい方向に私を向ける助けがあれば、大歓迎です。

編集:私の投稿にアクセスした人へ: 上記の説明は不可能であるという結論に達しました。VML で可能な唯一のパターン化は、塗りつぶし要素を使用した画像のタイリングです。VML では、ベクトル形状で構成されたパターンは使用できません。

4

1 に答える 1

0

私はこの方法を使用しています:

1-塗りつぶしたいパスのパス要素(rectではない)でバウンディングボックスを作成します。2-「z」と塗りつぶしたいパスのパス文字列をバウンディングボックスのパス文字列に追加します。これにより、切り取られた四角形が作成されます。3- クリップされた四角形の後ろにパターンを繰り返すには、javascript を使用します。

于 2011-06-15T07:00:21.267 に答える