C#输入两个坐标和一个角度的方法得到新的坐标方法
时间: 2024-12-04 07:21:44 浏览: 9
在C#中,你可以创建一个静态方法来接受两个二维坐标点(通常表示为Point类或自定义结构体),以及一个旋转角度(一般用度或弧度表示)。这里假设我们有一个名为`RotatePoint`的示例方法,它会利用Math类来进行坐标旋转:
```csharp
using System;
using System.Drawing; // 如果你需要处理Point,可以导入此命名空间
public static Point RotatePoint(Point originalPoint, double angleInDegrees, bool counterClockwise)
{
// 将角度转换为弧度
double angleInRadians = Math.PI * angleInDegrees / 180;
// 计算新的X和Y坐标
double newX = originalPoint.X + (originalPoint.Y * Math.Cos(angleInRadians) - originalPoint.X * Math.Sin(angleInRadians));
double newY = originalPoint.Y + (originalPoint.X * Math.Cos(angleInRadians) + originalPoint.Y * Math.Sin(angleInRadians));
// 如果需要顺时针旋转,则将结果取反
if (!counterClockwise)
{
newX = -newY;
}
return new Point((int)newX, (int)newY); // 返回新坐标,确保整数类型
}
// 使用示例:
Point point = new Point(5, 7);
double rotationAngle = 45; // 单位为度
Point rotatedPoint = RotatePoint(point, rotationAngle, false); // 默认顺时针旋转
```
阅读全文