Android模拟绘制极坐标方程
2018-09-08 本文已影响48人
e4e52c116681
零、前言
本着点动成线的世界真理,思考了一下,可以加入点的绘制来玩玩
有点就可以模拟坐标系,极坐标当然也阔以。
一个缺点就是重复绘制(因为绘制时点压点,然后看过度绘制一条红)
但是看极坐标方程是什么样子的,玩玩还是挺好的
绘图部分基于我的LogicCanvas绘图库:基础使用在此,
喜欢的话可以到项目的github上看看,顺便给个star
引入
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
implementation 'com.github.toly1994328:logic-canvas-android:0.05'
一、看下几个效果:



二、绘制代码:
//ρ= 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.欢迎关注我的微信公众号,最新精彩文章,及时送达:
