shell语言打印矩形、三角形、平行四边形、梯形、菱形、空心菱形等

这篇博客详细介绍了如何使用Shell脚本来绘制各种几何图形,包括正五角星、矩形、等腰直角三角形(四个不同方向)、等腰三角形、等腰梯形、普通三角形/梯形、平行四边形以及菱形。通过改变边界和斜率,可以灵活创建这些图形,展示了Shell脚本在图形输出方面的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

shell语言打印三角形、平行四边形、梯形、菱形等

这是一个循序渐进的过程,请从第一个开始看

1.打印 ***** ;

line="";ch="\x2a"   # "\x2a"表示星号*
for((i=0;i<5;i++));do 
	line=$line$ch
done
echo -e $line

2.打印 5*5矩形
在这里插入图片描述

for((j=0;j<5;j++));do
	line="";ch="\x2a"
	for((i=0;i<5;i++));do
		line=$line$ch
	done
	echo -e $line
done

3.四种等腰直角三角形

  1. 直角在左下
    在这里插入图片描述

     for((y=0;y<5;y++));do
       line="";ch="\x2a"
       for((x=0;x<=y;x++));do   # 看斜线的坐标
         line=$line$ch
       done
       echo -e $line
     done
    
  2. 直角在左上
    在这里插入图片描述

     for((y=0;y<5;y++));do
       line="";ch="\x2a"
       for((x=0;x+y<5;x++));do   # 看斜线的坐标
         line=$line$ch
       done
       echo -e $line
     done
    
  3. 直角在右上
    在这里插入图片描述

     for((y=0;y<5;y++));do
       line="";ch="\x20"   # \x20是空格符
       for((x=0;x<5;x++));do
         if((x==y));then   # 当x=y后,空格由星号替代
           ch="\x2a"
         fi
         line=$line$ch
       done
       echo -e $line
     done
    
  4. 直角在右下
    在这里插入图片描述

     for((y=0;y<5;y++));do
       line="";ch="\x20"
       for((x=0;x<5;x++));do
         if((x+y==4));then  #过斜线以后  空格由星号替代
           ch="\x2a"
         fi
         line=$line$ch
       done
       echo -e $line
     done
    

4.等腰三角形
在这里插入图片描述

 for((y=0;y<5;y++));do
   line="";ch="\x20"
   for((x=0;x-y<5;x++));do   # 控制右边界
     if((x+y==4));then		# 控制左边界
       ch="\x2a"
     fi
     line=$line$ch
   done
   echo -e $line
 done

5.等腰三角形(距左一定距离)
在这里插入图片描述

 left=40;right=40  #左边界顶点位置与右边界顶点位置
 for((y=0;y<5;y++));do
   line="";ch="\x20"
   for((x=0;x<=right;x++));do
     if((x==left));then
       ch="\x2a"
     fi
     line=$line$ch
   done
   echo -e $line
   ((left--));((right++)) #控制幅度 也可以写成left-=n;
 done

6.等腰梯形
在这里插入图片描述

 left=35;right=45  #等腰三角形左右边界顶点位置不同则变成了等腰梯形
 for((y=0;y<5;y++));do
   line="";ch="\x20"
   for((x=0;x<=right;x++));do 
     if((x==left));then
       ch="\x2a"
     fi
     line=$line$ch
   done
   echo -e $line
   ((left--));((right++))
 done

7.普通三角形(或普通梯形,只需修改left与right不等)
在这里插入图片描述

 left=40;right=40;ldlt=-2;rdlt=4  #ldlt rdlt 可以理解成左右边界的斜率
 for((y=0;y<5;y++));do
   line="";ch="\x20"
   for((x=0;x<=right;x++));do
     if((x==left));then
       ch="\x2a"
     fi
     line=$line$ch
   done
   echo -e $line
   ((left+=ldlt));((right+=rdlt))
 done

8.平行四边形
平行四边形

 left=40;right=50;ldlt=-4;rdlt=-4
 for((y=0;y<5;y++));do
   line="";ch="\x20"
   for((x=0;x<=right;x++));do
     if((x==left));then
       ch="\x2a"
     fi
     line=$line$ch
   done
   echo -e $line
   ((left+=ldlt));((right+=rdlt))
 done

9.菱形
在这里插入图片描述

 left=40;right=40;ldlt=-3;rdlt=3;maxy=9
 for((y=0;y<maxy;y++));do
   line="";ch="\x20"
   for((x=0;x<=right;x++));do
     if((x==left));then
       ch="\x2a"
     fi
     line=$line$ch
   done
   echo -e $line
   if((y==maxy/2));then
     ((ldlt*=-1));((rdlt*=-1))
   fi
   ((left+=ldlt));((right+=rdlt))
 done

10.空心菱形
在这里插入图片描述

 left=40;right=40;ldlt=-3;rdlt=3;maxy=9
 for((y=0;y<maxy;y++));do
   line="";ch="\x20"
   for((x=0;x<=right;x++));do
     if((x==left||x==right));then
       ch="\x2a"
     else
       ch="\x20"
     fi
     line=$line$ch
   done
   echo -e $line
   if((y==maxy/2));then
     ((ldlt*=-1));((rdlt*=-1))
   fi
   ((left+=ldlt));((right+=rdlt))
 done

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值