首页 > 其他 > 详细

坐标系变换后重新计算点的坐标

时间:2015-10-26 18:38:28      阅读:308      评论:0      收藏:0      [点我收藏+]
/*
         * 原始坐标系的点转换到当前坐标系的点(可能旋转、移动、镜像过)
         */
        transforPoint: function (px, py) {
            if (!this._transform) {
                return;
            }

            var x = px, y = py;
            var m = this._transform;

            px = x * m[0] + y * m[2] + m[4];
            py = x * m[1] + y * m[3] + m[5];
            return { x: px, y: py };
        },

        /*
         * 当前状态是(旋转、移动、镜像)过的,变换到原始坐标系
         */
        deTransforPoint: function (px, py) {

            var x = px, y = py;

            var m = this._transform;
            if (0 == m[2]) {
                return {
                    x: ((x - m[4]) / m[0]),
                    y: ((y - m[5]) / m[3])
                }
            }

            px = (m[2] * (y - m[5]) - x * m[3] + m[4] * m[3]) / (m[1] * m[2] - m[0] * m[3]);

            py = (x - m[4] - px * m[0]) / m[2];

            return { x: px, y: py };
        }

  

坐标系变换后重新计算点的坐标

原文:http://www.cnblogs.com/Farmer-D/p/4911823.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!