C#建立类文件,实现坐标正反算功能,源代码
时间: 2024-10-11 10:07:10 浏览: 42
坐标方位角正反算 (窗体模板)_c#坐标方位角正反算_测量学_
5星 · 资源好评率100%
在C#中,我们可以创建一个名为`CoordinateConverter.cs`的类文件,用于处理坐标系的正向和反向计算。这里是一个简单的例子:
```csharp
using System;
public class CoordinateConverter
{
// 定义一个坐标结构体
public struct Position
{
public double X { get; set; }
public double Y { get; set; }
}
// 正向转换方法,将笛卡尔坐标转极坐标
public static Position CartesianToPolar(Position cartesian)
{
double distance = Math.Sqrt(cartesian.X * cartesian.X + cartesian.Y * cartesian.Y);
double angleInRadians = Math.Atan2(cartesian.Y, cartesian.X);
return new Position(distance, angleInRadians);
}
// 反向转换方法,将极坐标转笛卡尔坐标
public static Position PolarToCartesian(Position polar)
{
double x = polar.Radius * Math.Cos(polar.Angle);
double y = polar.Radius * Math.Sin(polar.Angle);
return new Position(x, y);
}
// 测试函数
public static void Main()
{
Position cart = new Position(3, 4); // 假设我们有笛卡尔坐标 (3, 4)
Position polar = CartesianToPolar(cart);
Console.WriteLine($"Cartesian coordinates ({cart.X}, {cart.Y}) converted to Polar: ({polar.X}, {polar.Y})");
Position cartFromPolar = PolarToCartesian(polar);
Console.WriteLine($"Polar coordinates ({polar.X}, {polar.Y}) converted back to Cartesian: ({cartFromPolar.X}, {cartFromPolar.Y})");
}
}
```
这个类中包含一个结构体`Position`表示二维坐标,以及两个静态方法`CartesianToPolar`和`PolarToCartesian`分别用于坐标系之间的转换。在`Main`方法中,我们测试了这两个转换。
阅读全文