7

私の仕事は、さまざまな種類の曲線を 2 次元空間の特定の点列に適合させるアルゴリズムを開発することです。

アルゴリズムをテストできるように、結果を表示するために SVG を選択しました。いくつかの問題があります。

アルゴリズムの入力と出力が大きく異なる可能性があるため、生成された SVG ファイルをズームインして表示できることが不可欠です。

ただし、SVG のパスは特定の幅でしか表示できません。ズームインすると、パスの幅が広くなります。たとえば、すべてのズーム レベルで幅を 1 ピクセルにしたいと思います。これに対する解決策はありますか?

また、SVG はポイントを表示できますか? はい、シンプルで生のポイントです。できないことがわかりました。

感謝

4

3 に答える 3

7

他の多くのベクター形式 (PostScript や PDF など) では、「ヘアライン」ストロークにストローク幅 0 を使用できます。SVG ではそうではありません。ただし、パーセンテージのストローク幅を使用すると、目的を達成できると思います。詳細については w3c SVG 仕様を参照してください。ただし、基本的には、次のようなことができるはずです。

stroke-width:"1%"

これにより、ズーム レベルに関係なく、外接する四角形の一定の 1% である線幅で曲線を描く必要があります。

ポイントに関しては、SVG はサポートしていません。過去に (PostScript を使用して) これを行ったとき、私は常に小さな rediusを持つ円弧を使用して小さな円を描きました (必要に応じて塗りつぶしてドットを作成できます)。


@Zoli: あなたのコメントの後、SVG 仕様で非スケーリング ストローク ベクター効果に遭遇したときにヘアライン ストローク幅を使用できるように、PostScript を調べることを提案しようとしていました。

vector-effect="non-scaling-stroke"

これを曲線に追加するだけで、仕様によると、スケーリングに対して不変になります。彼らの例では を使用lineしていますが、曲線でも同様に機能するはずです。

于 2009-06-24T17:36:52.053 に答える
0

助けてくれてありがとうNaaff。私はFirefoxを使い続けると思います。そして、アルゴリズムごとに、生成されたsvgファイルの線幅を指定します。それで十分でしょう。

于 2009-06-25T07:25:03.143 に答える