10

私は raphael.js を使用して、次のような単純な SVG 折れ線グラフを描画しています。

折れ線グラフ

ユーザーがグラフをホバーすると、次のように、カーソルのX位置の線と、そのX位置の線であるY位置を指すポップオーバーを表示したいと思います。

行に沿ってポップオーバーがあるカーソル

パスを取得して、特定のX座標のY座標を見つける必要があります。

4

2 に答える 2

0

パスのすべてのポイントがわかっている場合は、d探している特定の x 座標のパスの属性を検索し、regexp を使用して y 座標を取得する方がパフォーマンスが向上する可能性があります。

const regex = new RegExp(`${x} ((\d*.\d*))`)
const match = regex.exec(d)

パスの d 属性にない y 座標と任意の x 座標を見つけたい場合は、パスのすべての座標をループして、探している座標に最も近い x 座標を見つけることができます。パスをステップスルーして呼び出すよりも高速かどうかはわかりませんgetPointAtLength

于 2019-11-12T10:10:15.720 に答える