C#实现计算一个点围绕另一个点旋转指定弧度后坐标值的方法实现计算一个点围绕另一个点旋转指定弧度后坐标值的方法
主要介绍了C#实现计算一个点围绕另一个点旋转指定弧度后坐标值的方法,涉及C#针对坐标的数学运算相关技
巧,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了C#实现计算一个点围绕另一个点旋转指定弧度后坐标值的方法。分享给大家供大家参考。具体如下:
1.示例图
P(x1,y1)以点A(a,b)为圆心,旋转弧度为θ,求旋转后点Q(x2,y2)的坐标
2.实现方法
先将坐标平移,计算点(x1-a,y1-b)围绕原点旋转后的坐标,再将坐标轴平移到原状态
/// <summary>
/// 结构:表示一个点
/// </summary>
struct Point
{
//横、纵坐标
public double x, y;
//构造函数
public Point(double x, double y)
{
this.x = x;
this.y = y;
}
//该点到指定点pTarget的距离
public double DistanceTo(Point p)
{
return Math.Sqrt((p.x - x) * (p.x - x) + (p.y - y) * (p.y - y));
}
//重写ToString方法
public override string ToString()
{
return string.Concat("Point (",
this.x.ToString("#0.000"), ',',
this.y.ToString("#0.000"), ')');
}
}
/// <summary>
/// 计算点P(x,y)与X轴正方向的夹角
/// </summary>
/// <param name="x">横坐标</param>
/// <param name="y">纵坐标</param>
/// <returns>夹角弧度</returns>
private static double radPOX(double x,double y)