Android绘图之绘制太极图

本文介绍了如何使用Android的Canvas和Paint类绘制太极图,详细讲解了设置画笔颜色、样式以及绘制直线、矩形、圆和弧形等方法,并通过代码示例展示了绘制太极图的完整过程,最后提到了让太极图旋转的实现方式。
摘要由CSDN通过智能技术生成

  Android是通过graphics类来显示2D图形的。其中graphics中包括了Canvas、Paint、Color、Bitmap等类。graphics具有绘制点、线、颜色、2D几何图形、图像处理等功能。其中Color和Bitmap是很常用的类,我要讲的是Canvas和Paint。顾名思义就是画布和画笔。接下来我将通过绘制太极图来学习Android绘图机制。
  Paint类
  和日常绘图一样,要绘制图形,首先得选择合适的画笔。那么同理android中绘图首先得调整画笔,按照自己的需要设置画笔的相关属性,系统给我提供的常用API如下:
  setColor(); //设置画笔的颜色
  setAntiAlias(); //设置画笔的锯齿效果
  setARGB(); //设置画笔的A、R、G、B值
  setAlpha(); //设置画笔的Alpha值
  setTextSize(); //设置字体的尺寸
  setStyle(); //设置画笔的风格(空心或实心)
  setStrokeWidth(); //设置空心边框的宽度
  getColor(); //获取画笔的颜色

  Canvas
  Canvas即画布,我们需要做的就是使用之前设置好的Paint来绘制图形。那么我们先看看系统给我们提供的方法:
  canvas.drawLine(float startX, float startY, float stopX, float stopY, Paint paint);//绘制直线
  canvas.drawRect(float left, float top, float right, float bottom, Paint paint);//绘制矩形
  canvas.drawCircle(float cx, float cy, float radius, Paint paint);//绘制圆
  canvas.drawArc(float cx, float cy, float radius, Paint paint);//绘制弧形、和扇形
  canvas.drawText(String text, float x, float y, Paint paint);// 绘制字符
  canvas.drawBitmap(Bitmap bitmap, float left, float top, Paint paint);//绘制Bitmap

  介绍完这些函数,下面通过绘制太极图来看看怎么使用它们:
  先看看太极图:
       
  现在就要开始一步一步的将他画出来, 我们可以借鉴图层的概念。首先绘制最底部的图层,为了方便我们将其左,右两边分别设置白色和黑色:
  
  图中(x,y)是圆心坐标。这里我设置的x=getWidth() / 2;y=getHeight() / 2;半径r=getHeight() / 2;
  现在我们就来看看代码,在定义View的OnDraw(Canvas canvas)方法中:
  

   //绘制最外层大圆
        mPaint.setColor(Color.BLACK);//设置画笔颜色为黑色
        mPaint.setStyle(Paint.Style.FILL_AND_STROKE);//设置画笔style实心
        RectF rect= new RectF(getWidth() / 2 - getHeight() / 2,
                0, getWidth() / 2 + getHeight() / 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python可以使用多个绘图库进行太极图绘制,其中较为常用的是turtle库和matplotlib库。下面分别介绍这两种库的使用方法。 1. 使用turtle库绘制太极图 ```python import turtle # 设置画布大小和背景色 turtle.setup(500, 500) turtle.bgcolor('black') # 绘制白色半圆 turtle.fillcolor('white') turtle.begin_fill() turtle.circle(100, 180) turtle.end_fill() # 绘制黑色半圆 turtle.fillcolor('black') turtle.begin_fill() turtle.circle(100, -180) turtle.end_fill() # 绘制白色小圆 turtle.penup() turtle.goto(0, 50) turtle.pendown() turtle.fillcolor('white') turtle.begin_fill() turtle.circle(20) turtle.end_fill() # 绘制黑色小圆 turtle.penup() turtle.goto(0, -50) turtle.pendown() turtle.fillcolor('black') turtle.begin_fill() turtle.circle(20) turtle.end_fill() # 隐藏画笔 turtle.hideturtle() # 显示绘图窗口 turtle.done() ``` 2. 使用matplotlib库绘制太极图 ```python import matplotlib.pyplot as plt # 设置图形大小和分辨率 fig = plt.figure(figsize=(4, 4), dpi=100) # 绘制白色半圆 theta1 = [i for i in range(0, 181)] r1 = [100] * len(theta1) plt.polar(theta1, r1, color='white') # 绘制黑色半圆 theta2 = [i for i in range(180, 361)] r2 = [100] * len(theta2) plt.polar(theta2, r2, color='black') # 绘制白色小圆 plt.polar(0, 50, marker='o', markersize=10, color='white') # 绘制黑色小圆 plt.polar(0, -50, marker='o', markersize=10, color='black') # 隐藏极轴和刻度标签 plt.axis('off') # 显示绘图窗口 plt.show() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值