private List <PointF> NormalizePoints(ProtractorRoiInfo roiInfo) { float aspectRatio = 1F; if (roiInfo.PixelAspectRatio.IsNull) { if (!roiInfo.NormalizedPixelSpacing.IsNull) { aspectRatio = (float)roiInfo.NormalizedPixelSpacing.AspectRatio; } } else { aspectRatio = roiInfo.PixelAspectRatio.Value; } List <PointF> normalized = new List <PointF>(); foreach (PointF point in roiInfo.Points) { normalized.Add(new PointF(point.X, point.Y * aspectRatio)); } return(normalized); }
private IRoiAnalyzerResult Analyze(ProtractorRoiInfo roiInfo, RoiAnalysisMode mode) { // Don't show the callout until the second ray is drawn if (roiInfo.Points.Count < 3) { //return SR.ToolsMeasurementSetVertex; return new RoiAnalyzerResultNoValue("Protactor", SR.ToolsMeasurementSetVertex); } List<PointF> normalizedPoints = NormalizePoints(roiInfo); double angle = Vector.SubtendedAngle(normalizedPoints[0], normalizedPoints[1], normalizedPoints[2]); //return String.Format(SR.ToolsMeasurementFormatDegrees, Math.Abs(angle)); return new SingleValueRoiAnalyzerResult("Protactor", SR.ToolsMeasurementFormatDegrees, Math.Abs(angle),String.Format(SR.ToolsMeasurementFormatDegrees, Math.Abs(angle))); }
private IRoiAnalyzerResult Analyze(ProtractorRoiInfo roiInfo, RoiAnalysisMode mode) { // Don't show the callout until the second ray is drawn if (roiInfo.Points.Count < 3) { //return SR.ToolsMeasurementSetVertex; return(new RoiAnalyzerResultNoValue("Protactor", SR.ToolsMeasurementSetVertex)); } List <PointF> normalizedPoints = NormalizePoints(roiInfo); double angle = Vector.SubtendedAngle(normalizedPoints[0], normalizedPoints[1], normalizedPoints[2]); //return String.Format(SR.ToolsMeasurementFormatDegrees, Math.Abs(angle)); return(new SingleValueRoiAnalyzerResult("Protactor", SR.ToolsMeasurementFormatDegrees, Math.Abs(angle), String.Format(SR.ToolsMeasurementFormatDegrees, Math.Abs(angle)))); }
private List<PointF> NormalizePoints(ProtractorRoiInfo roiInfo) { float aspectRatio = 1F; if (roiInfo.PixelAspectRatio.IsNull) { if (!roiInfo.NormalizedPixelSpacing.IsNull) aspectRatio = (float)roiInfo.NormalizedPixelSpacing.AspectRatio; } else { aspectRatio = roiInfo.PixelAspectRatio.Value; } List<PointF> normalized = new List<PointF>(); foreach (PointF point in roiInfo.Points) normalized.Add(new PointF(point.X, point.Y * aspectRatio)); return normalized; }