前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android模拟绘制极坐标方程

Android模拟绘制极坐标方程

作者头像
张风捷特烈
发布2018-09-29 11:22:30
7990
发布2018-09-29 11:22:30
举报
零、前言

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

引入
代码语言:javascript
复制
allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

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

一、看下几个效果:

极坐标绘图2.png

极坐标绘图1.png

极坐标绘图.png

二、绘制代码:
代码语言:javascript
复制
    //ρ= 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你的喜欢与支持将是我最大的动力

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.09.08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 零、前言
    • 引入
    • 一、看下几个效果:
    • 二、绘制代码:
    • 后记、
      • 1.声明:
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档