- comments
- trackbacks

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
 ↑↑↑↑↑↑よければクリックをお願いします↓↓↓↓↓↓
0 comments
0 trackbacks

PointCollectionを元から生成してあるものとして、折れ線を描画する箇所だけ覚書
StreamGeometryで描画すると、線が多い場合でもオーバーヘッドが少なくなるそうです。
あたいの変更等が考慮されていない分、Lineを複数設定するより軽くなると思っています。
実際のところは不明です。同じ書き方で複数線も描けるので意外と便利です。


// StreamGeometry生成
StreamGeometry geometry = new StreamGeometry();

using (StreamGeometryContext geometryCnt = geometry.Open())
{
// 始点のポイントを設定
geometryCnt.BeginFigure(PointCollection[0], false, false);
// 2点目から終点までのポイントリストを設定
geometryCnt.PolyLineTo(PointCollection.skip(1).ToList(), true, false);
}
// StreamGeometry確定
geometry.Freeze();

// Pathを生成してデータ設定
Path path = new Path();
path.Stroke = Brushes.Black;
path.StrokeThickness = 1.0;
path.Data = geometry;

■StreamGeometryContextのポイントの設定箇所について
BeginFigure(Point, _buff.GetValue(0)), isFilled, isClosed);について
isFilled・・・pathで設定したFillにより図形の中身を塗りつぶすかどうか
isClosed・・・三点あったら勝手に三角形にしてくれる。今回は折れ線なので閉じたらだめなのでfalse

ctx.PolyLineTo(PointCollection.ToList(), isStroked, isSmoothJoin);について
isStroked・・・線を繋ぐか繋げないかのよう、falseだと線が描画されない
isStroked・・・セグメントと前のセグメント間の結合線に適用したときに、角と見なすかどうか、とりあえずfalse
スポンサーサイト
 ↑↑↑↑↑↑よければクリックをお願いします↓↓↓↓↓↓

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。