PathGeometryクラスのGetPointAtFractionLengthを使って
Pathを等分したところに印と角度を表示してみた
今回のアプリのダウンロード先
GetPointAtFractionLength
第1引数のprogressに渡すのは0から1の数値で、これがPathの長さ全体の比率になっていて、0.5を渡すとPathのちょうど真ん中の位置の座標をpointとして得られると同時にPoint型のtangentも得られる、角度はこのtangentから計算
stepが分割数
水色の線が対象になるPathで4つの頂点を結ぶ直線
角度は全部45度づつの変化になるような頂点のPath
そのPathをstep数で等分したところに○印と数値は角度
角度はどうやら等分したところから伸びる線の方向の角度みたいで、基準になる0度は真下で時計だと6時の方向、そこから反時計回りで右方向が90度で時計回りだとマイナスになるみたい、-45度は360度足すと-45+360=315度
1分割
Pathの始点は左上で、そこから右下、右、左下で終点になっている、↘→↙の順番
初期状態では分割数はstep=001で1分割なので、表示される○は始点と終点の2つだけ
2等分
始点から終点までの経路長を2等分する場所が角度90の表示のところの○
5等分
↘→↑↖
真上方向は180度になった、それを越えると-マイナス
デザイン画面
コード
角度の計算のところはよく解っていない、それっぽい数値をそれっぽい関数に入れたらそれっぽい数値が得られただけ、なので間違っているかも
Math.Atan2の引数はxとy逆だったかも、逆にしたら
こうなった、こっちのほうが自然かな、水平で0度
そもそも角度を求めるならPathの座標は解っているんだから、そこから計算すればいいんだけど、曲線だった場合は前回のGetFlattenedPathGeometryと組み合わせると…
参照したところ
GetPointAtFractionLength – digitalnetbizz's WebLog
https://blogs.msdn.microsoft.com/digitalnetbizz/2007/04/05/getpointatfractionlength/
コード
関連記事
続きは翌日、2018/06/16
GetPointAtFractionLengthで分割した座標からのPathの長さ測定の確認 ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15551929.html
前回、2018/06/14
曲線Pathを近似の直線PathにするGetFlattenedPathGeometry使ってみた ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15549065.html