autojs之十二圆

简介: 使用情景给孩子画个圆

使用情景


给孩子画个圆


效果展示



autojs版本号

微信图片_20220624174106.png


原理


  1. canvas绘制bitmap
  2. 我们在bitmap上 画圆
  3. 画12个圆, 画一个, 画布旋转30度


知识点


  1. 测量画布宽高的时机
  2. 画笔的参数设置
  3. 生成bitmap


  1. 生成canvas
  2. 监听画布的ondraw事件
  3. 设置画布的背景


  1. canvas画字
  2. 生成rectf
  3. 生成随机颜色


  1. canvas画圆弧
  2. 画布的旋转


代码讲解


  1. 导入类
importClass(android.graphics.RectF);
importClass(android.graphics.Paint);
importClass(android.graphics.Bitmap);


  1. 布局
ui.layout(
  <vertical>
    <canvas id="board" w="*" h="*"></canvas>
  </vertical>
);
  1. 等界面加载完毕, 再开始画圆
setTimeout(draw, 100);


  1. 初始化参数
mPaint = new Paint();
mPaint.setStrokeWidth(10);
var color = "#00ff00";
color = colors.parseColor(color);
mPaint.setColor(color);
mPaint.setStrokeWidth(10); // 设置圆环的宽度
mPaint.setAntiAlias(true); // 消除锯齿
mPaint.setStyle(Paint.Style.STROKE); // 设置空心
let radius = 200;
let mProgress = 0;
let isDrawCircle = true;
let mSpeed = 2;
var bitmap;


  1. 启用draw方法
function draw() {
  let viewWidth = board.getWidth();
  let viewHeight = board.getHeight();
  bitmap = Bitmap.createBitmap(viewWidth, viewHeight, Bitmap.Config.ARGB_8888);
  var mCanvas = new Canvas(bitmap);
  ui.board.on("draw", function (canvas) {
    canvas.drawBitmap(bitmap, 0, 0, mPaint);
  });
  threads.start(function () {
    画十二个圆形(mCanvas);
  });
}


  1. 设置背景
canvas.drawARGB(255, 123, 104, 238);


  1. 画12个圆
for (var i = 0; i < 12; i++) {
  let oval = new RectF(center - radius, center - radius, center + radius, center + radius); // 用于定义的圆弧的形状和大小的界限
  while (1) {
    if (mProgress > 360) {
      mProgress = 0;
      let color = getRandomColor();
      if (启用随机颜色) {
        mPaint.setColor(color);
      }
      break;
    } else {
      canvas.drawArc(oval, 90, mProgress, false, mPaint); // 根据进度画圆弧
      sleep(mSpeed); //通过传递过来的速度参数来决定线程休眠的时间从而达到绘制速度的快慢
    }
    mProgress += 1;
  }
  canvas.rotate(30, center, center + radius);
}











相关文章
C#窗体连连看小游戏(超详细)(下)
C#窗体连连看小游戏(超详细)
337 0
autojs帮我使用这个命令画圆
autojs帮我使用这个命令画圆
|
5月前
AutoJS4.1.0实战教程 ---闪电盒子极速版
AutoJS4.1.0实战教程 ---闪电盒子极速版
37 0
|
5月前
|
XML Java Android开发
Android App开发手机阅读中贝塞尔曲线的原理讲解及实现波浪起伏动画实战(附源码和演示视频 可直接使用)
Android App开发手机阅读中贝塞尔曲线的原理讲解及实现波浪起伏动画实战(附源码和演示视频 可直接使用)
106 0
|
算法 C#
C#窗体连连看小游戏(超详细)(上)
C#窗体连连看小游戏(超详细)
351 0
C#窗体连连看小游戏(超详细)(上)
|
前端开发 JavaScript Android开发
autojs画六边形
我们一组一组的计算六边形中心点, 一组有两排六边形: 第一排5个 第二排4个 下一组, 往下移动 3 个边长, 因为第一组, 我们已经检查过画板右侧
145 0
autojs画六边形
|
JavaScript 测试技术 Android开发
|
前端开发 数据可视化 Android开发
autojs之超椭圆
使用场景 可视化 超椭圆系数 对 曲线 的作用
218 0
|
前端开发 JavaScript 计算机视觉
手撸一个在线css三角形生成器
为了提高 前端开发 效率, 笔者先后写了上百个前端工具, 有些是给公司内部使用的, 有些单纯是因为自己太“懒”, 不想写代码, 所以才“被迫”做的. 接下来介绍的一款工具——css三角形生成器也是因为之前想要解放设计师的生产力, 自己又懒得切图或者写css代码, 所以想来想去还是自己做一个能自动生成css三角形代码的工具吧.
334 0
|
vr&ar 图形学
【Unity3D 灵巧小知识点】☀️ | Unity控制台 输出打印不同颜色的字体
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏!
【Unity3D 灵巧小知识点】☀️ | Unity控制台 输出打印不同颜色的字体