标题: [其他] 请教如何用批处理画出正方形和抛物线? [打印本页]
作者: scale_888 时间: 2009-3-21 23:16 标题: 请教如何用批处理画出正方形和抛物线?
@echo off
setlocal enabledelayedexpansion
mode con cols=102 lines=25
for /l %%a in (1,1,100) do (set k= !k!)
for /l %%a in (-10,1,10) do (set h%%a=%k%)
set la=-11
:la
set /a la+=1,lb=la*la,tlb=100-lb
set h%la%=!h%la%:~%tlb%!.
ping -n 1 127.1>nul
cls
for /l %%a in (-10,1,10) do echo,!h%%a!
if %la% lss 10 goto :la
pause
这段代码是怎么输出这种抛物线的,真是百思不得其解....,,根据代码一步一步分析,,好像不可能得出这样的结果.请各位大哥指教....
作者: yslyxqysl 时间: 2009-3-22 13:42
start =11
11+-4=7
...
1+0 =1
1+1 =2
...
7+4 =11
组合:
a
a
a
a
a
a
a
a
a
作者: 523066680 时间: 2009-3-22 13:45
楼主为何不在原帖讨论 ,我记得一楼的代码是~ 发的
啊 还是解释一下一楼的:- @echo off
- setlocal enabledelayedexpansion
- for /l %%a in (1,1,79) do (set k= !k!)
- ::变量k=100个空格
- for /l %%a in (-8,1,8) do (set h%%a=%k%)
- ::变量 h-8 到 h8 都=79个空格
-
- set la=-9
- :la
- set /a la+=1,lb=la*la
- set h%la%=!h%la%:~0,%lb%!.
- ::计算出la行的点应处在什么位置,即lb值
- ::然后对la行进行描点。
- ping -n 1 127.1>nul
- cls
- for /l %%a in (-8,1,8) do echo,!h%%a!
- ::显示h-10 到 h10 的行
- if %la% lss 10 goto :la
- pause
复制代码
[ 本帖最后由 523066680 于 2009-3-22 14:24 编辑 ]
作者: 523066680 时间: 2009-3-22 14:21
过程就是
逐行描点,每描一个点,就把所有行显示一次。
la表示行 lb表示列 上面描述的图像是 列=行*行 的图像。
为了描述出整个曲线,所以行的编号设为 从 -8 到 8
la=-8 时 lb=64
-7 49
-6 36
:
:
0 0
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
执行过程就是将这些坐标逐个描出来。
[ 本帖最后由 523066680 于 2009-3-22 14:29 编辑 ]
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |