コード例 #1
0
        public void AddStroke(InkStroke stroke)
        {
            var irStroke = new InkRecognizerStroke(stroke, dpiX, dpiY);

            strokes.Add(irStroke);
            innerStorkes.Add(stroke);
        }
コード例 #2
0
        public DrawsomeLine(InkRecognitionUnit unit, List <InkRecognizerStroke> inkStrokes, int skip = 10, int size = 10) : base(unit)
        {
            var mainStrokeId = unit.StrokeIds.OrderByDescending(id => CalPointDistance(inkStrokes.Find(item => item.Id == id))).First();
            var mainStroke   = inkStrokes.Find(item => item.Id == mainStrokeId);

            this.MainStroke = mainStroke;

            long cur = 0;

            foreach (var p in mainStroke.Points.ToList())
            {
                if (cur % skip == 0)
                {
                    // use skip as size
                    this.LittleRects.Add(GetRectangle(p, size));
                }
                cur++;
            }
        }
コード例 #3
0
 private double CalPointDistance(InkRecognizerStroke stroke)
 {
     return(Math.Pow(stroke.Points.First().Position.X - stroke.Points.Last().Position.X, 2)
            + Math.Pow(stroke.Points.First().Position.Y - stroke.Points.Last().Position.Y, 2));
 }