markus / MarkupToPDF / Common / CommentMath.cs @ master
이력 | 보기 | 이력해설 | 다운로드 (1.34 KB)
1 | 30c2742e | taeseongkim | using System; |
---|---|---|---|
2 | using System.Collections.Generic; |
||
3 | using System.Linq; |
||
4 | using System.Text; |
||
5 | using System.Threading.Tasks; |
||
6 | using System.Windows; |
||
7 | |||
8 | namespace MarkupToPDF.Common |
||
9 | { |
||
10 | public static class CommentMath |
||
11 | { |
||
12 | public static System.Windows.Rect CalculateBoundingRect(List<Point> points) |
||
13 | { |
||
14 | if (points.Count == 0) |
||
15 | throw new ArgumentException("Points list must not be empty."); |
||
16 | |||
17 | // 초기화를 위해 첫 번째 좌표를 사용합니다. |
||
18 | double minX = points[0].X; |
||
19 | double minY = points[0].Y; |
||
20 | double maxX = points[0].X; |
||
21 | double maxY = points[0].Y; |
||
22 | |||
23 | // 모든 좌표를 반복하면서 최소 및 최대 X 및 Y를 찾습니다. |
||
24 | foreach (Point point in points) |
||
25 | { |
||
26 | if (point.X < minX) |
||
27 | minX = point.X; |
||
28 | if (point.Y < minY) |
||
29 | minY = point.Y; |
||
30 | if (point.X > maxX) |
||
31 | maxX = point.X; |
||
32 | if (point.Y > maxY) |
||
33 | maxY = point.Y; |
||
34 | } |
||
35 | |||
36 | // 계산된 최소 및 최대 좌표를 사용하여 사각형(Rectangle)을 생성합니다. |
||
37 | double width = maxX - minX; |
||
38 | double height = maxY - minY; |
||
39 | return new Rect(minX, minY, width, height); |
||
40 | } |
||
41 | } |
||
42 | } |