機械学習の結果を基に,図形の描画を行う.
今回は,推定結果から楕円と四角どちらかを描画する.
前回は文字で推定結果を表示したが,そこで対応する図形をMainCanvasに追加すればよい.
private void MainCanvas_PointerReleased(object sender, PointerRoutedEventArgs e) { //drawingStrokeがnullでなければ,描き終わったことを示すためnullにしておく if (drawingStroke != null) { if (strokePredictModel != null) { var predEngine = mlContext.Model.CreatePredictionEngine<StrokeData, StrokePredict>(strokePredictModel); var result = predEngine.Predict(GetStrokeData(drawingStroke)); if (result.Prediction) { AddMessage("Ellipse"); //ここにストロークの位置,大きさで楕円をキャンパスに追加 } else { AddMessage("Rect"); //ここにストロークの位置,大きさで四角形をキャンパスに追加 } } drawingStroke = null; } }
Path.Data.Bounds
によりRect型で取得できる
var rect = drawingStroke.Data.Bounds; //rect.X //ストロークを囲う矩形の左上X座標 //rect.Y //ストロークを囲う矩形の左上Y座標 //rect.Width //ストロークを囲う矩形の横幅 //rect.Height //ストロークを囲う矩形の縦幅
楕円はWindows.UI.Xaml.Shapes.Ellipse,四角形はWindows.UI.Xaml.Shapes.Rectangleを使用する.
var ellipse = new Windows.UI.Xaml.Shapes.Ellipse { Stroke = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0)), StrokeThickness = 1 }; ellipse.Width = 100; ellipse.Height = 100; MainCanvas.Children.Add(ellipse); Canvas.SetLeft(ellipse, 50); Canvas.SetTop(ellipse, 50);
招待されているBoxアップロードフォルダ「情報メディア基礎ゼミ(森谷)」の「第6回」へ,完成させた課題のソリューションフォルダをZIP圧縮し,ファイルを以下の名前でアップロードしてください.
ファイル名:XXFIXXX_6th.zip(例:18FI999_6th.zip)
提出締め切り:6月13日(金) 23:59
BOXアップロードフォルダの招待メールが来ていない方は森谷までメール連絡ください.
ストロークの色や太さを変更できる,図形補間のオンオフ,画像の保存など,独自の機能を実装せよ.
ヒント:Shapeクラスの図形もXAMLからUI上に配置し,イベントを持たせることが可能である.
<Ellipse x:Name="PenColorBlack" Margin="10, 10, 10, 10" Fill="Black" Width="20" Height="20" RelativePanel.Below="PredictModeSwitch" PointerPressed="PenColorBlack_PointerPressed"></Ellipse> <Ellipse x:Name="PenColorGreen" Margin="10, 10, 10, 10" Fill="LimeGreen" Width="20" Height="20" RelativePanel.Below="PredictModeSwitch" RelativePanel.RightOf="PenColorBlack" PointerPressed="PenColorGreen_PointerPressed"></Ellipse>
招待されているBoxアップロードフォルダ「情報メディア基礎ゼミ(森谷)」の「第6回」へ,完成させた課題のソリューションフォルダをZIP圧縮し,ファイルを以下の名前でアップロードしてください.
ファイル名:XXFIXXX_6th_advance.zip(例:18FI999_6th_advance.zip)
提出締め切り:6月13日(木) 23:59
BOXアップロードフォルダの招待メールが来ていない方は森谷までメール連絡ください.