markus / MarkupToPDF / Common / CommentMath.cs @ 30c2742e
이력 | 보기 | 이력해설 | 다운로드 (1.34 KB)
1 |
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 |
} |