それを行うための組み込みの方法が WPF にあるとは思いません。自分で座標を計算し、自分で線を引く必要があります (例: DrawingVisual を使用)。
座標を計算するには、次のことを行う必要があります。
ステップ 1 ベジエ曲線に沿ってポイントをサンプリングします。
4 つの制御点を持つベジェ曲線の式は次のとおりです。
curve(t) = t^3 p1 + 3 t^2 (1-t) p2 + 3 t (1-t)^2 p3 + (1-t)^3 p4
d/dt curve(t) = 3 p3 - 3 p4 + 6 p2 t - 12 p3 t + 6 p4 t + 3 p1 t^2 - 9 p2 t^2 + 9 p3 t^2 - 3 p4 t^2
これらの式を使用して、曲線上の点とその接線方向を計算できます。接線方向を 90° 回転させる (つまり、X/Y を入れ替えて Y の符号を変更する) と、法線方向になります。
ただし、これらの点は等距離ではありません。

したがって、これらの点を直接使用すると、一部の「スパイク」が他のものよりも短い曲線が得られます。

ステップ 2: 曲線に沿って等距離のポイントを取得する
これで、曲線に沿った点のリストができました。各点と次の点の間のユークリッド距離を計算できます。これらの距離をすべて合計すると、曲線の全長が得られます。
(およそ) 10 ピクセル幅のスパイクが必要だとしましょう。n=round(TotalLength / 10)
それからポイントが必要です。ポイントは にありs(i) = TotalLength / n * i
ます。
t
したがって、たとえば3 番目の等距離点のの値を見つけたい場合は、 を計算しs(3) = TotalLength / n * 3
ます。次に、曲線に沿った合計距離が s(3) を超えるポイントに到達するまで、サンプリングされたポイントのセットを繰り返し、移動しながら距離を合計します。これで、探しているポイントの直前と直後のポイントがわかったので、3 の法則を使用してその間の t を計算できます。
これで、曲線に沿って同じ距離だけ離れた点のセットができました。

ステップ 3: スパイクを描く
これは最も簡単な部分です: 等距離の各ポイントで、法線を計算します (上記の微分式を使用)。その法線をその長さで割り、法線の単位を取得します。次に、各偶数ポイント+d * UnitNormal
と各奇数ポイント-d * UnitNormal
に を追加します。ここd
で、 はスパイクの「深さ」、つまり先端から曲線までの距離です。
