零、前言

本着点动成线的世界真理,思考了一下,可以加入点的绘制来玩玩
有点就可以模拟坐标系,极坐标当然也阔以。
一个缺点就是重复绘制(因为绘制时点压点,然后看过度绘制一条红)
但是看极坐标方程是什么样子的,玩玩还是挺好的
绘图部分基于我的LogicCanvas绘图库:基础使用在此
喜欢的话可以到项目的github上看看,顺便给个star

引入
allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

implementation 'com.github.toly1994328:logic-canvas-android:0.05'


一、看下几个效果:

9414344-144a88817002e2ea.png
极坐标绘图2.png
9414344-7db70381cff4ea87.png
极坐标绘图1.png
9414344-8cb33addcafd5c36.png
极坐标绘图.png

二、绘制代码:

    //ρ= a(1-cosθ)
    //ρ= a(1-sin3θ)
    //ρ=(e^(cosθ)- 2cos(4θ) + [sin(θ/12)]^5)*100
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Painter painter = PainterEnum.INSTANCE.getInstance(canvas);
        CanvasUtils.drawCoord(getContext(), coo, 50, canvas);
        CanvasUtils.drawGrid(getContext(), 50, canvas);
        
        for (int i = 1; i < 500; i++) {
            float ang = (float) (i);
            float rad = Logic.rad(ang);

            float c = (float) (100 * (1 - Math.sin(rad)));
//          float c = (float) (100 * (1 - Math.cos(3*Logic.rad(ang))));
//          float c = (float) (Math.pow(Math.E,Math.cos(rad)) - 2 * Math.cos(4 * rad) + Math.pow(Math.sin(rad / 12), 5));
            painter.draw(new ShapeDot()
                    .ang(ang).c(c).b(4).coo(coo)
                    .fs(Color.parseColor("#F05617")));
        }
    }

就酱紫


后记、

1.声明:

[1]本文由张风捷特烈原创,转载请注明
[2]欢迎广大编程爱好者共同交流
[3]个人能力有限,如有不正之处欢迎大家批评指证,必定虚心改正
[4]你的喜欢与支持将是我最大的动力

2.连接传送门:

更多安卓技术欢迎访问:安卓技术栈
我的github地址:欢迎star
简书首发,腾讯云+社区同步更新
张风捷特烈个人网站,编程笔记请访问:http://www.toly1994.com

3.联系我

QQ:1981462002
邮箱:1981462002@qq.com
微信:zdl1994328

4.欢迎关注我的微信公众号,最新精彩文章,及时送达:
9414344-c474349cd3bd4b82.jpg
公众号.jpg
posted on 2018-09-08 10:25  张风捷特烈  阅读(332)  评论(0编辑  收藏  举报