• 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;
        }
  • 相关阅读:
    python
    python中xrange和range的区别
    python
    shell用if
    shell调用shell
    An unhandled exception of type 'System.TypeInitializationException' occurred in System.ServiceModel.dll
    C# 获取存在DataTable1不存在DataTable2的数据的快速方法
    textbox自动提示
    全面理解面向对象的 JavaScript(转载)
    C#中文乱码转换
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/12876810.html
Copyright © 2020-2023  润新知