美文网首页高级UI
Android的三角函数以及求圆上的任意一点

Android的三角函数以及求圆上的任意一点

作者: 山上的神仙 | 来源:发表于2019-04-17 10:44 被阅读49次

本篇为了加深自定义View的理解,来一篇数学基础的,也回顾下初中知识 ps:以前感觉高中数学好并没什么卵用,现在好像有点用处了,还有手势滑动的速度来处理相应业务需求(下篇再更)。


20160311132542311.png

话不多说,先上公式
数学中是这样求坐标点的
圆心坐标:(x0,y0)
半径:r
角度:a
圆周率: PI
则圆上任一点为:(x1,y1)
x1 = x0 + r * cos(a * PI /180 )
y1 = y0 + r * sin(a * PI /180 )
再看java代码

    private void drawNomal(Canvas canvas) {
        paint = new Paint();//初始化画笔
        //绘制画布背景
        canvas.drawColor(Color.GRAY);
        //设置画笔颜色
        paint.setColor(Color.parseColor("#f00000"));
        //设置画笔为空心  如果将这里改为Style.STROKE 将这个图中的实线圆柱体就变成空心的
        paint.setStyle(Paint.Style.FILL);
        canvas.save();
        //画圆
        canvas.drawCircle(width / 2, height / 2, 200, paint);

        paint.setColor(Color.parseColor("#ffffff"));

        for (int i = 0; i < 12; i++) {
            //中心坐标
           //x = width / 2 ;//我这里是以屏幕中心为坐标点 所以宽高直接除以2
           // y = height / 2;//我这里是以屏幕中心为坐标点 所以宽高直接除以2
           //30 代表角度,200代表半径 这些都是可以自定义的
           //公式 java中有快捷求cos sin得方法。就是这样了

            int x = (int) Math.round(Math.sin(Math.toRadians(30 * i)) * 200);

            int y = (int) Math.round(Math.cos(Math.toRadians(30 * i)) * 200);

            canvas.drawLine(width / 2, height / 2, width / 2 + x, height / 2 - y, paint);

            canvas.drawCircle(width/2+x,height/2-y,10,paint);
        }
    }

只要传入我们view里面得画布就可以实现以下效果


TIM截图20190417105159.png

看到这里你会说这有什么diao用?
但是我们可以衍生出来的圆形菜单就是这样做的鸭!!

相关文章

  • Android的三角函数以及求圆上的任意一点

    本篇为了加深自定义View的理解,来一篇数学基础的,也回顾下初中知识 ps:以前感觉高中数学好并没什么卵用,现在好...

  • 任意角的三角函数

    任意角的三角函数 在角的概念推广到任意角以后,锐角三角函数就可以推广到任意角的三角函数了。 任意角三角函数的概念 ...

  • 三角函数线

    三角函数线 三角函数线的概念 任意角的三角函数从代数的角度给了三角函数的定义,由此定义出发我们也可以从图形的角度来...

  • 圆和百分数知识点集合

    第五单元 1、从圆心到圆上任意一点的线段叫做(半径),用字母(r)表示。 通过(圆心)并且(两段)都在(圆上)的线...

  • Euclidea Alpha-7

    给定圆 A 和园上一点 B,求一个圆 A 的内接正方形,以 B 为一个顶点。 B 为圆心过 A 做圆,交圆 A 于...

  • function

    求任意数组的最大值 求任意数组的最小值 //求任意范围数字和 求任意数字的总和 // type 检测参数数据类型...

  • 【干货】事半功倍的秘诀!三角函数如何运用在特效制作中?

    三角函数是基本初等函数之一,是以角度(数学上最常用弧度制,下同)为自变量,角度对应任意角终边与单位圆交点坐标或其比...

  • 已知中心点和半径,求圆上任意一点.

    圆心坐标:(x0,y0) 半径:r 角度:a 则圆上任一点为:(x1,y1) x1 = x0 + ...

  • Euclidea Beta-8

    要求过圆 A 上一点 B 做圆 A 的切线。 步骤 在圆 A 上取一点 C,以之为圆心,过 B 做圆,与圆 A 交...

  • Android求一个圆上某点坐标

    需要的前置条件 圆的中心坐标(x,y)半径 radius被求点的角度 angle 计算公式 Android 应用场...

网友评论

    本文标题:Android的三角函数以及求圆上的任意一点

    本文链接:https://www.haomeiwen.com/subject/tmsgwqtx.html