zoukankan      html  css  js  c++  java
  • 坐标系变换后重新计算点的坐标

    /*
             * 原始坐标系的点转换到当前坐标系的点(可能旋转、移动、镜像过)
             */
            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 };
            }
    

      

  • 相关阅读:
    数据库相关
    linux相关
    类相关
    异常处理
    一些类的概念
    安装插件
    接口开发
    redis相关
    大数据-概览
    大数据-浅谈OLTP与OLAP
  • 原文地址:https://www.cnblogs.com/Farmer-D/p/4911823.html
Copyright © 2011-2022 走看看