public void AddStroke(InkStroke stroke) { var irStroke = new InkRecognizerStroke(stroke, dpiX, dpiY); strokes.Add(irStroke); innerStorkes.Add(stroke); }
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++; } }
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)); }