public MainWindow() { InitializeComponent(); this.analyzer = new AnswerSheetAnalyzer(); this.visualizer = new AnswerSheetVisualizer(analyzer); }
/// <summary> /// Initialization with the result /// </summary> /// <param name="analysis"></param> /// <param name="c"></param> public AnswerGroupWindow(AnswerSheetAnalyzer a, AnswerSheetVisualizer v) : this() { this.analyzer = a; this.visualizer = v; this.currentMethod = AnswerSheetAnalyzer.ClassificationFeature.Proposed; ChangeMethod(this.currentMethod); }
/// <summary> /// Initialization with answer information /// </summary> /// <param name="ans"></param> /// <param name="controller"></param> /// <param name="w"></param> public AnswerSheetItemData(AnswerSheet ans, AnswerSheetVisualizer v, AnswerGroupWindow w) { this.parentWindow = w; this.answerData = ans; this.visualizer = v; this.strokes = new StrokeCollection(); foreach (AnalysisPenStroke s in ans.Strokes) { this.strokes.Add(s.GetStrokeObject(Config.OutputThumbnailCanvasWidth, Config.OutputThumbnailCanvasHeight)); } this.NameLabel = ans.Name; this.timeLabel = "Time: " + ((double)ans.AnswerTime / 1000.0).ToString("f3") + "(sec)"; double writingRatio = ans.WritingRatio; this.writingTime = new GridLength(MaxWritingTime * writingRatio * 2.5); this.writingTimeLabel = (writingRatio * 100.0).ToString("F2") + "%"; double speedAvg = ans.WritingSpeedAvg; this.writingSpeedAvg = new GridLength(MaxWritingTime * (speedAvg - 0.5)); this.writingSpeedAvgLabel = speedAvg.ToString("F4"); double speedVar = ans.WritingSpeedVar; this.writingSpeedVar = new GridLength(MaxWritingTime * speedVar); this.writingSpeedVarLabel = speedVar.ToString("F4"); }
/// <summary> /// Initialization with group information /// </summary> /// <param name="group"></param> /// <param name="controller"></param> /// <param name="w"></param> public AnswerGroupItemData(AnswerSheetGroup group, AnswerSheetVisualizer visualizer, AnswerGroupWindow w) { this.answerGroupData = group; this.groupNameLabel = group.Name; this.timeLabel = "Average Time: " + (group.GetAverageAnswerTime() / 1000.0).ToString("f3") + "(sec)"; this.AnswerSheetData = new ObservableCollection<AnswerSheetItemData>(); foreach (AnswerSheet ans in group.AnswerSheetList) { this.AnswerSheetData.Add(new AnswerSheetItemData(ans, visualizer, w)); } // sort item by answer time this.AnswerSheetData = new ObservableCollection<AnswerSheetItemData>(this.AnswerSheetData.OrderBy(n => n.AnswerData.AnswerTime)); }