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;
        }
  • 相关阅读:
    静态化之优化
    SEO小技巧
    apache 工具和简单优化
    apache rewrite机制
    nginx php win平台配置
    mvc 简单模型
    php无限分类三种方式
    【转】sqlserver查询数据库中有多少个表
    【转】sqlserver数据库之间的表的复制
    SET ANSI_NULLS (TransactSQL)
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/12876810.html
Copyright © 2011-2022 走看看