js实现黑白div块画空心的图形


Posted in Javascript onDecember 13, 2018

本文实例为大家分享了js实现黑白div块画空心图形的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>starts picture</title>
 <link rel="stylesheet" href="main.css" rel="external nofollow" >
</head>
<body>

<script type="text/javascript">

 /* 打印实心矩形,思路:两个for循环嵌套,外面for循环 + 换行符实现打印n行;
       内部for循环实现打印n个星号; */

 function juxing(n){    //打印矩形,传入参数为行数(矩形高),作用域预解析时会声明传入参数,无需         var n = a; 声明多余的变量
  for(var i=1; i<=n; i++){
   for(var j=1; j<=n; j++){  //for循环嵌套实现,每行打印n个'*';
    document.write('<div class="black"></div>');
   }
   document.write('<br/>');  //打印换行符,实现换行,不然全部在一行
  }
 }
 juxing(4);




 /* 打印空心矩形,
  ****
  * *
  * *
  ****
  思路:内部for循环打印信号时加上序号判断,
  具体情况:
   1、第一行 或 最后一行的所有序号 打印星号
   2、第二行至倒数第二行的第一个序号 或 最后一个序号 打印星号
   3、第二行至倒数第二行中间全部序号 打印空格

   ' ' 注意HTML中字符实体都是以 &开头 ;结尾 */

 function kongxinjuxing(n){
  for(var i=1; i<=n; i++){
   for(var j=1; j<=n; j++){
    if(i==1 || i==n){    
     document.write('<div class="black"></div>');
    }else if(j==1 || j==n){
     document.write('<div class="black"></div>');
    }else{
     document.write('<div class="white"></div>');
    }
   }
   document.write('<br/>');
  }
 }
 kongxinjuxing(8);

 /* 打印实心正三角形
   ..*
   .***
   *****
   思路:两个for循环嵌套;外部for循环实现n行;
    内部第一个for循环,先打印n-i个空格
    内部第二个for循环,再继续打印2*i-1个星号
  */
  function zhengsanjiaoxing(n){
  for(var i=1; i<=n; i++){
   for(var j=1; j<=n-i; j++){
    document.write('<div class="white"></div>');
   }
   for(var k=1; k<=2*i-1; k++){
    document.write('<div class="black"></div>');
   }
   document.write('<br/>');
  }
  }
  zhengsanjiaoxing(4);
  document.write('<br/>');
  document.write('<br/>');


 /*打印空心三角形
  *
  * *
  * *
  *******
 思路:内部第二个for循环打印星号时判断序号
 具体情况:
   1、最后一行每个序号都打印星号
   2、第一行至倒数第二行中 第一个 或 最后一个 打印星号
   3、其他打印空格
 */ 
 function kongxinzhengsanjiaoxing(n){
  for(var i=1; i<=n; i++){
   for(var j=1; j<=n-i; j++){
    document.write('<div class="white"></div>');
   }
   for(var k=1; k<=2*i-1; k++){
    if(i==n){     //判断如果是最后一行就每个序号都打星号
     document.write('<div class="black"></div>');
    }else if(k==1 || k==2*i-1){  //判断如果是第一个 或 最后一个序号,打印星号
     document.write('<div class="black"></div>');
    }else{       //其他为序号打印空格
     document.write('<div class="white"></div>');
    }
   }
   document.write('<br/>');
  }
 }
 kongxinzhengsanjiaoxing(9);

 /*
  打印实心菱形
  思路:先打印上面 (n+1)/2 行的正三角形,再打印下面 (n+1)/2-1 行的倒过来的正三角形
 */
 function lingxing(n){
  for(var i=1; i<=(n+1)/2; i++){    //打印上半个三角形,行数为(n+1)/2
   for(var j=1; j<=(n+1)/2-i; j++){
    document.write('<div class="white"></div>');
   }
   for(var k=1; k<=2*i-1; k++){ 
    document.write('<div class="black"></div>');
   }
   document.write('<br/>');
  }

  for(var l=1; l<=(n+1)/2-1; l++){   //打印下半个倒三角形,行数为(n+1)/2-1 要比上半个少一行
   for(var m=1; m<=l; m++){
    document.write('<div class="white"></div>');
   }  
   //再继续打印星号,每行是的星号个数是行数倒序的二倍减一,即(((n+1)/2-1+1)-l)*2-1
   for(var o=1; o<=((n+1)/2-l)*2-1; o++){
    document.write('<div class="black"></div>');
   }
   document.write('<br/>');
  }
 }
 lingxing(9);

 /*
  打印空心菱形
 */
 function kongxinlingxing(n){
  for(var i=0; i<=(n+1)/2; i++){   //打印上部分三角形
   for(var j=1; j<=(n+1)/2-i; j++){
    document.write('<div class="white"></div>');
   }
   for(var k=1; k<=2*i-1; k++){
    if(k==1 || k==2*i-1){ 
     document.write('<div class="black"></div>'); //每行第一个序号 或 最后一个序号打印星号
    }else{
     document.write('<div class="white"></div>');
    }
   }
   document.write('<br/>');
  }

  for(var l=1; l<=(n+1)/2-1; l++){ //打印下面的三角形
   for(var m=1; m<=l; m++){
    document.write('<div class="white"></div>');
   }
   for(var o=1; o<=((n+1)/2-l)*2-1; o++){
    if(o==1 || o==((n+1)/2-l)*2-1){
     document.write('<div class="black"></div>');     
    }else{
     document.write('<div class="white"></div>');
    }
   }
   document.write('<br/>');
  }
 }
 kongxinlingxing(7);

 /*
  打印实心圆形
 */
 function circle(r){
  for(var i=1; i<=r; i++){         //画上半个圆
   var n = Math.round(Math.sqrt(r*r-(r-i)*(r-i)));
   for(var j=1; j<=r-n; j++){
    document.write('<div class="whitemin"></div>');
   }
   for(var k=1; k<=2*n; k++){
    document.write('<div class="blackmin"></div>');
   }
   document.write('<br/>');
  }

  for(var l=1; l<=r; l++){
   var m =Math.round(Math.sqrt(r*r-l*l));
   for(var o=1; o<=r-m; o++){ 
    document.write('<div class="whitemin"></div>');   
   }
   for(var q=1; q<=2*m; q++){ 
    document.write('<div class="blackmin"></div>');   
   }
   document.write('<br/>');   
  }
 }
 circle(66);

 /*
  打印空心圆形
 */
 function kongxinCircle(r){
  for(var i=1; i<=r; i++){         //画上半个圆
   var w = Math.sqrt(r*r-(r-i)*(r-i));
   var n = Math.round(w);
   var diff = w - n;
   if(diff >= 0.2){
    n += 1;
   }
   console.log(w);
   console.log(n);
   for(var j=1; j<=r-n; j++){
    document.write('<div class="whitemin"></div>');
   }
   for(var k=1; k<=2*n; k++){
    if(i==1){
     document.write('<div class="blackmin"></div>');     
    }else if(k==1 || k==2*n){
     document.write('<div class="blackmin"></div>');
    }else{
     document.write('<div class="whitemin"></div>');     
    }
   }
   document.write('<br/>');
  }

  for(var l=1; l<=r; l++){
   var m = Math.round(Math.sqrt(r*r-l*l));
   for(var o=1; o<=r-m; o++){ 
    document.write('<div class="whitemin"></div>');   
   }
   for(var q=1; q<=2*m; q++){ 
    if(l>=r-1){
     document.write('<div class="blackmin"></div>');     
    }else if(q==1 || q==2*m){
     document.write('<div class="blackmin"></div>');
    }else{
     document.write('<div class="whitemin"></div>');     
    }  
   }
   document.write('<br/>');   
  }
 }
 kongxinCircle(66);
</script>
</body>
</html>

js实现黑白div块画空心的图形

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
关于取不到由location.href提交而来的上级页面地址的解决办法
Jul 30 Javascript
基于jQuery的投票系统显示结果插件
Aug 12 Javascript
JavaScript 基础篇之运算符、语句(二)
Apr 07 Javascript
javascript数组去重3种方法的性能测试与比较
Mar 26 Javascript
jquery实现全选、不选、反选的两种方法
Sep 06 Javascript
基于Three.js插件制作360度全景图
Nov 29 Javascript
vue.js实现表格合并示例代码
Nov 30 Javascript
jquery.cookie.js的介绍与使用方法
Feb 09 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
Oct 20 jQuery
微信小程序进入广告实现代码实例
Sep 19 Javascript
Postman如何实现参数化执行及断言处理
Jul 28 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
Aug 11 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
Dec 13 #Javascript
示例vue 的keep-alive缓存功能的实现
Dec 13 #Javascript
Element UI框架中巧用树选择器的实现
Dec 12 #Javascript
vue-cli中安装方法(图文详细步骤)
Dec 12 #Javascript
新版小程序登录授权的方法
Dec 12 #Javascript
加快Vue项目的开发速度的方法
Dec 12 #Javascript
关于自定义Egg.js的请求级别日志详解
Dec 12 #Javascript
You might like
php入门之连接mysql数据库的一个类
2012/04/21 PHP
jQuery 使用手册(七)
2009/09/23 Javascript
一个原生的用户等级的进度条
2010/07/03 Javascript
深入理解JavaScript系列(10) JavaScript核心(晋级高手必读篇)
2012/01/15 Javascript
JS中不为人知的五种声明Number的方式简要概述
2013/02/22 Javascript
JavaScript中访问节点对象的方法有哪些如何使用
2013/09/24 Javascript
jquery更换文章内容与改变字体大小代码
2013/09/30 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)
2016/05/05 Javascript
React中ES5与ES6写法的区别总结
2017/04/21 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
2017/09/22 Javascript
图片文字识别(OCR)插件Ocrad.js教程
2018/11/26 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
vue.js实现三级菜单效果
2019/10/19 Javascript
[01:10:03]OG vs EG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
Python实现堡垒机模式下远程命令执行操作示例
2019/05/09 Python
Python2和Python3中@abstractmethod使用方法
2020/02/04 Python
django列表筛选功能的实现代码
2020/03/27 Python
使用keras实现孪生网络中的权值共享教程
2020/06/11 Python
python对一个数向上取整的实例方法
2020/06/18 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
2020/12/21 Python
HQhair美国/加拿大:英国化妆品、美容及美发产品商城
2019/04/15 全球购物
*p++ 自增p 还是p所指向的变量
2016/07/16 面试题
使用Vue.js和MJML创建响应式电子邮件
2021/03/23 Vue.js
护理学毕业生自荐信
2013/10/02 职场文书
护士自我介绍信
2014/01/13 职场文书
民生工作实施方案
2014/05/31 职场文书
五好文明家庭事迹材料
2014/12/20 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
读《方与圆》有感:交友方圆有度
2020/01/14 职场文书
详解Python魔法方法之描述符类
2021/05/26 Python
python lambda 表达式形式分析
2022/04/03 Python