如何用js代码绘制一棵树

本篇文章给大家分享的内容是如何用js代码绘制一棵 ,有着一定的参考价值,有需要的朋友可以参考一下

第一步新建html文档:

           /*设置body样式*/       body{      overflow:hidden;        background: black;  }                             

登录后复制

第二步建一个js文档:

//创建画布var mycanvas=document.createElement("canvas");//设置树的宽度和高度mycanvas.width=1500;mycanvas.height=900;//绘制画布的对象并设置为2Dvar context=mycanvas.getContext("2d");//设置划线的类型颜色context.strokeStyle="#ff00ff";//设置线的宽度context.lineWidth=2;//将画布添加到窗体上document.body.appendChild(mycanvas);////////////////////////////////////////////*---------------画图部分----------------*//////////////////////////////////////////////画树深度var n=10;//设置初始角度var th=-Math.PI/2;//设置初始位置var x0=700;var y0=700;//调用绘图函数draw(n-1,700,700,100,th);/*------------绘制树的函数-------------------*/function draw(n,x0,y0,length,th){//(画树深度,起始位置x0,y0,长度,度数)      if(n==0)  return;      //计算线条末端坐标  var x1=x0+length*Math.cos(th);  var y1=y0+length*Math.sin(th);  //画线      drawline(x0,y0,x1,y1);  //画子树递归  draw(n-1,x1,y1,0.8*length*(Math.random()+0.4),th+(20+Math.random()*5)*Math.PI/180);  draw(n-1,x1,y1,0.6*length*(Math.random()+0.5),th-(30+Math.random()*5)*Math.PI/180);}/*--------------绘制线段-----------------------*/function drawline(x0,y0,x1,y1){context.moveTo(x0,y0);//设置绘制的起点context.lineTo(x1,y1);//设置线段的末尾context.stroke();     //绘制}

登录后复制

最后的成果图如下所示:

如何用js代码绘制一棵树

相关推荐:

python绘制树和森林

绘制一棵树

怎么用js代码画一棵树

以上就是如何用js代码绘制一棵树的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2772217.html

(0)
上一篇 2025年3月8日 13:12:06
下一篇 2025年3月8日 13:12:14

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS匿名函数应该怎样使用

    这次给大家带来JS匿名函数应该怎样使用,使用JS匿名函数的注意事项有哪些,下面就是实战案例,一起来看一下。 匿名函数的基本形式为(function(){…})(); 前面的括号包含函数体,后面的括号就是给匿名函数传递参数并立即执…

    编程技术 2025年3月8日
    000
  • Vue.js中v-on事件使用详解

    这次给大家带来Vue.js中v-on事件使用详解,Vue.js中v-on事件使用的注意事项有哪些,下面就是实战案例,一起来看一下。 每个 Vue 实例都实现了事件接口(Events interface),即: 使用 $on(eventNam…

    编程技术 2025年3月8日
    200
  • nodejs async异步需要哪些函数

    这次给大家带来nodejs async异步需要哪些函数,nodejs async异步使用函数的使用函数有哪些,下面就是实战案例,一起来看一下。 nodejs框架使用函数很多,“使用函数”本来是件比较简单的事,但是对于nodejs的异步架构的…

    编程技术 2025年3月8日
    200
  • JS去除数组中重复项的方法

    这次给大家带来JS去除数组中重复项的方法,JS去除数组中重复项的注意事项有哪些,下面就是实战案例,一起来看一下。 数组去重的方法有很多,不同的方法的效率也不相同。如前面文章JS实现的数组去除重复数据算法小结中就总结分析了4种实现方法。这里介…

    编程技术 2025年3月8日
    200
  • JS数组去重最快的算法

    这次给大家带来JS数组去重最快的算法,JS数组去重的注意事项有哪些,下面就是实战案例,一起来看一下。 在JS中经常会遇到去除数组中重复数据的需求,在此介绍四种算法以实现JS数组去重的功能. 1. 速度最快算法:对象键值对法 实现思路:新建一…

    编程技术 2025年3月8日
    200
  • js 实现毫秒+天+时+分秒转换

    这次给大家带来js 实现毫秒+天+时+分秒转换,js 实现毫秒+天+时+分秒转换的注意事项有哪些,下面就是实战案例,一起来看一下。 实例如下所示: formatDuring: function(mss) { var days = parse…

    编程技术 2025年3月8日
    200
  • JS实现导航栏的透明渐变

    这次给大家带来JS实现导航栏的透明渐变,JS实现导航栏透明渐变的注意事项有哪些,下面就是实战案例,一起来看一下。 mui内置有H5版本的透明渐变导航控件,教程参考mui官网;透明渐变导航是一种解决滚动条通顶的变通方案,相比双webview,…

    编程技术 2025年3月8日
    200
  • Vue.js移动端组件库使用方法

    这次给大家带来Vue.js移动端组件库使用方法,Vue.js移动端组件库使用的注意事项有哪些,下面就是实战案例,一起来看一下。 Mint UI 包含丰富的 css 和 JS 组件,能够满足日常的移动端开发需要。通过它,可以快速构建出风格统一…

    编程技术 2025年3月8日
    200
  • js字符串indexof与search使用时有什么区别

    这次给大家带来js字符串indexof与search使用时有什么区别,js字符串indexof与search使用的注意事项有哪些,下面就是实战案例,一起来看一下。 现js的使用中,很多人对于indexof方法以及search方法的区别都不是…

    编程技术 2025年3月8日
    200
  • JSONP的实现原理

    这次给大家带来JSONP的实现原理,使用JSONP的注意事项有哪些,下面就是实战案例,一起来看一下。 JSONP的实现原理 相信很多从事前后端分离的人对于JSONP也是经常接触的,不过很多新手对于JSONP,不知道怎么去实现以及它的实现原理…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论