最近用批处理画了一些图形,觉得很好玩,拿出来给大家分享下。
<1>作关于x轴对称的曲线 | @echo off&setlocal enabledelayedexpansion | | set a=O | | for /l %%i in (1 1 10) do ( | | for /l %%j in (1 1 %%i) do set "str=!!str!! " | | echo !str!!a! | | ping -n 1 127.1>nul | | ) | | set t=!str! | | for /l %%i in (10 -1 2) do ( | | set "t=!t:~%%i!" | | echo !t!!a! | | ping -n 1 127.1>nul | | ) | | pauseCOPY |
这个还有多方法,弯曲程度,大小都可以变,大家都来尝试看啊。
<2>画矩形 | @echo off&setlocal enabledelayedexpansion | | :begin | | set /p length=请输入长度: | | set /p width=请输入宽度: | | set "c=│"&set "l=─" | | set "w=┏"&set "x=┓"&set "y=┗"&set "z=┛" | | set /a _length=%length%-1 | | set /a _width=%width%-1 | | for /l %%k in (1 1 !_length!) do set "str=!str! " | | set "var= " | | for /l %%i in (1 1 %length%) do set "var=!var!%l%" | | set var1=!w!!var:~1,-1!!x! | | echo !var1! | | for /l %%j in (1 1 %_width%) do echo !c!!str!!c! | | set var2=!y!!var:~1,-1!!z! | | echo !var2! | | set str= | | set var= | | goto beginCOPY |
感觉矩形挺简单的,可还是费了不少功夫,希望大家有更简单的代码啊。
<3>画圆 | @echo off&setlocal enabledelayedexpansion | | set "str= " | | for /l %%i in (0 1 20) do ( | | for /l %%j in (0 1 20) do ( | | set /a num1=10-%%i,num2=10-%%j | | set /a num=!num1!*!num1!+!num2!*!num2! | | set /a num-=100 | | if !num! lss 0 set /a num=-num | | if !num! lss 4 ( set /p=o<nul) else set /p=!str!<nul | | ) | | echo. | | ) | | pauseCOPY |
唉,这个也是最不成功的,批处理下好像不能处理浮点数吧,我也只能写出这么粗糙的代码了,设置了数值为4的误差,因为若误差为0,这样的点寥寥无几,必须得半径很大才会多些,但这样又显得很空,结合图形的效果,我也只能达到这样了,希望大家有更好的改进方法啊。
欢迎大家跟帖讨论!! |