Пример #1
0
        private List <PointF> NormalizePoints(ProtractorRoi roi)
        {
            float aspectRatio = 1F;

            if (roi.PixelAspectRatio.IsNull)
            {
                if (!roi.NormalizedPixelSpacing.IsNull)
                {
                    aspectRatio = (float)roi.NormalizedPixelSpacing.AspectRatio;
                }
            }
            else
            {
                aspectRatio = roi.PixelAspectRatio.Value;
            }

            List <PointF> normalized = new List <PointF>();

            foreach (PointF point in roi.Points)
            {
                normalized.Add(new PointF(point.X, point.Y * aspectRatio));
            }

            return(normalized);
        }
Пример #2
0
        private IRoiAnalyzerResult Analyze(ProtractorRoi roi, RoiAnalysisMode mode)
        {
            // Don't show the callout until the second ray is drawn
            if (roi.Points.Count < 3)
            {
                return(new RoiAnalyzerResultNoValue("Protactor", SR.StringNoValue));
            }

            List <PointF> normalizedPoints = NormalizePoints(roi);

            double angle = Vector.SubtendedAngle(normalizedPoints[0], normalizedPoints[1], normalizedPoints[2]);

            return(new SingleValueRoiAnalyzerResult("Protactor", SR.FormatAngleDegrees, Math.Abs(angle), String.Format(SR.FormatAngleDegrees, Math.Abs(angle))));
        }
Пример #3
0
		private IRoiAnalyzerResult Analyze(ProtractorRoi roi, RoiAnalysisMode mode)
		{
			// Don't show the callout until the second ray is drawn
			if (roi.Points.Count < 3)
			{
				return new RoiAnalyzerResultNoValue("Protactor", SR.StringNoValue);
			}

			List<PointF> normalizedPoints = NormalizePoints(roi);

			double angle = Vector.SubtendedAngle(normalizedPoints[0], normalizedPoints[1], normalizedPoints[2]);

			return new SingleValueRoiAnalyzerResult("Protactor", SR.FormatAngleDegrees, Math.Abs(angle), String.Format(SR.FormatAngleDegrees, Math.Abs(angle)));
		}
Пример #4
0
		private List<PointF> NormalizePoints(ProtractorRoi roi)
		{
			float aspectRatio = 1F;

			if (roi.PixelAspectRatio.IsNull)
			{
				if (!roi.NormalizedPixelSpacing.IsNull)
					aspectRatio = (float) roi.NormalizedPixelSpacing.AspectRatio;
			}
			else
			{
				aspectRatio = roi.PixelAspectRatio.Value;
			}

			List<PointF> normalized = new List<PointF>();
			foreach (PointF point in roi.Points)
				normalized.Add(new PointF(point.X, point.Y*aspectRatio));

			return normalized;
		}