Android获取两条线之间的夹角度数
生活随笔
收集整理的這篇文章主要介紹了
Android获取两条线之间的夹角度数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Android獲取兩條線之間的夾角度數(shù)
核心代碼
centerX、centerY為公共點,xInView、yInView為觸摸點的坐標(biāo)
/***獲取兩條線的夾角* @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;}具體使用
@Overridepublic 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;}總結(jié)
以上是生活随笔為你收集整理的Android获取两条线之间的夹角度数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序设计C 实验六 结构体 题目四 偷菜
- 下一篇: SpringBoot 使用jedis整合