ベジェ曲線で曲線
System.Windows.Media.PolyBezierSegment
Path.Dataの
PathGeometryの
FigureのSegmentに
PolyBezierSegmentを指定してベジェ曲線
ってのはおとといのベジェ曲線で直線と同じ方法で、制御点座標を調整するようにして曲線にする
今回のアプリのダウンロード先
クリックしたところがアンカーポイントになる
デザイン画面
コード
前回から変更があったのはマウス移動時のところ
なめらかなベジェ曲線を描くには制御点座標を調整
灰色がアンカーポイント
紫色が制御点
アンカーポイント03の制御点02と04の座標を調整して
対角線上みたいに配置すると線がなめらかになる
マウスカーソル位置を終端のアンカーポイントとしたときに連動させる制御点座標の決め方は
Pixtack紫陽花2.6.50.134_マウスクリックでもベジェ曲線を描けるようにした ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログこの記事より
https://blogs.yahoo.co.jp/gogowaten/12656208.html
ベジェ曲線はアンカーポイントと制御点の2種類のポイント(座標)があって
始点と終点のアンカーポイントには1つの制御点
それ以外のアンカーポイントには2つの制御点が付く
始点の00には制御点01
終点の09には制御点08
それ以外の03と06にはそれぞれ2つの制御点02と04、05と07
FigureのStartPointに始点座標を指定して、それ以降の座標はPolyBezierSegmentに入れていくことになる
上の図だと
Figure.StartPoint = new Point(50, 50);
PolyBezierSegment.Points.Add(new Point(150, 50);
︙
PolyBezierSegment.Points.Add(new Point(322, 72);
なので始点だけ特別扱いみたいになる
49行目からの二個前のアンカーポイントを取得するところがめんどくさくなっているは始点が特別扱いだから、これがなければ58行目だけで済むんだけどなあ
アンカーポイントとその制御点の距離は一個前や二個前のアンカーポイントとの距離の1/4って決めたから4.0で割っている、1/4に決めたのは適当だったから関連記事
次回、2018/06/12は翌日
ベジェ曲線の方向線とアンカーポイント、制御点を表示してみた ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15547295.html
前回、2018/06/09は2日前
マウスクリックでCanvasに直線を描画その3、ベジェ曲線で直線、PolyBezierSegment ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15542192.html
2015/1/27は3年前
Pixtack紫陽花2.6.50.134_マウスクリックでもベジェ曲線を描けるようにした ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/12656208.html