Canvas递归画一棵树

点生线,线生面,只要有了基本的构图元素,我们可以用canvas画出各种图案,画棵树简直就是小case了。

画树的思路很简单,大树干分叉出若干的树枝,以不同角度和长度延伸出去并逐渐变细,树枝的末端再延伸树枝,所以很容易想到用递归来实现。

所以递归函数里是在画一层树枝,需要的参数就是:

startX:树枝起始的x轴坐标

startY:树枝起始的y轴坐标

length:长度

angle:分叉角度

depth:剩余层数

branchWidth:该层的树枝粗细

于是我们可以实现画出躯干的函数:

drawTree(startX, startY, length, angle, depth, branchWidth) {
      let _this = this;
      var newLength,
        newAngle,
        newDepth,
        endX,
        endY,
        maxAngle = (2 * Math.PI) / 5,
        subBranches;
      //开始绘制路径
      _this.ctx.beginPath();
      _this.ctx.moveTo(startX, startY);
      endX = startX + Math.cos(angle) * length;
      endY = startY + Math.sin(angle) * length;

      _this.ctx.lineCap = "round";
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
adb基本的命令教程 (1人评价)|347人阅读|9次下载|举报文档 手?机?A?D?B?命?令 要使用adb命令,手机需要打开USB debug 安装软件 adb install apk文件名称.apk 重新安装该软件 adb install -r apk文件名称.apk 卸载apk软件 adb uninstall apk包名.apk 查看手机上的运行日志,此项可以用来查错 adb logcat 查看手机是否连接,以及连接了几台手机 adb devices A为手机路径,B为电脑路径,意思为:把文件从手机中复制到电脑上 adb pull A为手机路径,B为电脑路径,意思为:把文件从电脑复制到手机上 adb push 进入手机的超级终端Termil adb shell 重新挂载文件系统 adb remount 重启手机 adb reboot 重启到Recovery界面 adb reboot recovery 重启到bootloader界面 adb reboot bootloader 例子:刷官方高版本后重新获取ROOT和降级方法(部份操作) 进行adb运行环境 adb shell 设置超级用户模式 su 映射出目录 mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system 退出su exit 退出shell准备接受下一个adb命令 exit 增加flash_image文件到手机上 adb push flash_image.zip /system/bin/flash_image recovery先复制到卡上 adb push recovery-RA-heroc-v1.6.2.img /sdcard B?? 再次进入adb环境 adb shell 修改文件属性 chmod 0755 /system /bin/flash_image 重启系统 reboot 1234567890ABCDEFGHIJKLMNabcdefghijklmn!@#$%^&&*()_+.一三五七九贰肆陆扒拾,。青玉案元夕东风夜放花千树更吹落星如雨宝马雕车香满路凤箫声动玉壶光转一夜鱼龙舞蛾儿雪柳黄金缕笑语盈盈暗香去众里寻他千百度暮然回首那人却在灯火阑珊处

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值