Haclon放射变换

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bayinglong/article/details/83211712

学前知识参考,这篇博文不错https://blog.csdn.net/liubing8609/article/details/46350491

/// <summary>
        /// 将给定的点以识别中心按照da旋转后,确定此点新的坐标(仿射变换)
        /// </summary>
        /// <param Name="dx">被转换点x</param>
        /// <param Name="dy">被转换点y</param>
        /// <param Name="da">目标角度</param>
        /// <param Name="nx">输出x</param>
        /// <param Name="ny">输出y</param>
        public static void AffineTransXY(double dx, double dy, double da, out double nx, out double ny, Vector2D center)
        {
            HTuple homMat2DIdentity;//声明坐标
            HOperatorSet.HomMat2dIdentity(out homMat2DIdentity); //创建坐标
            HTuple homMat2DRotate;
            HTuple rad;
            HOperatorSet.TupleRad(da, out rad);
            HOperatorSet.HomMat2dRotate(homMat2DIdentity, rad, center.X, center.Y, out homMat2DRotate);
            HTuple qx, qy;
            HOperatorSet.AffineTransPoint2d(homMat2DRotate, dx, dy, out qx, out qy);
            nx = qx.D;
            ny = qy.D;
        }

内部工作方法
1.将坐标原点平移到旋转中心点
2.旋转固定角度
3.将坐标系统还原

变换公式
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/bayinglong/article/details/83211712