zoukankan      html  css  js  c++  java
  • Android获取两条线之间的夹角度数

    核心代码

    centerX、centerY为公共点,xInView、yInView为触摸点的坐标

     /**
         *获取两条线的夹角
         * @param centerX
         * @param centerY
         * @param xInView
         * @param yInView
         * @return
         */
        public static int getRotationBetweenLines(float centerX, float centerY, float xInView, float yInView) {
            double rotation = 0;
    
            double k1 = (double) (centerY - centerY) / (centerX * 2 - centerX);
            double k2 = (double) (yInView - centerY) / (xInView - centerX);
            double tmpDegree = Math.atan((Math.abs(k1 - k2)) / (1 + k1 * k2)) / Math.PI * 180;
    
            if (xInView > centerX && yInView < centerY) {  //第一象限
                rotation = 90 - tmpDegree;
            } else if (xInView > centerX && yInView > centerY) //第二象限
            {
                rotation = 90 + tmpDegree;
            } else if (xInView < centerX && yInView > centerY) { //第三象限
                rotation = 270 - tmpDegree;
            } else if (xInView < centerX && yInView < centerY) { //第四象限
                rotation = 270 + tmpDegree;
            } else if (xInView == centerX && yInView < centerY) {
                rotation = 0;
            } else if (xInView == centerX && yInView > centerY) {
                rotation = 180;
            }
    
            return (int) rotation;
        }
    

    具体使用

     @Override
        public boolean onTouch(View v, MotionEvent event) {
            float centerX = img_colors.getWidth() / 2;
            float centerY = img_colors.getHeight() / 2;
            setPointerRotation(Tools.getRotationBetweenLines(centerX, centerY, event.getX(), event.getY()));
            return true;
        }
  • 相关阅读:
    javascipt加强对类的理解
    PHP(http协议)相关应用知识
    javascipt对象成员函数
    PHP(http协议)防盗链技术(小练习)
    javasricpt二维数组矩形转置
    PHP二维数组矩形转置
    javascipt冒泡排序
    用vim解压各种格式
    转载:【菜鸟专用】使用LaTeX轻松撰写精美个人简历
    Ruby的gets和gets.chmop
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/12876810.html
Copyright © 2011-2022 走看看