中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-13 15:03
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 输出方程曲线图
可打印版本  2,267 / 5
第1楼 qwd 发表于 2011-01-03 19:44
初级用户 发帖 56 积分 161
输出方程曲线图
@echo off&setlocal enabledelayedexpansion&title 曲线方程图-趣味东QQ:309254515制作
set r=5
:fs :::排列方程表达式:::
for %%f in (
!添加曲线方程:仅此for内 乘号.替代* !

圆:x.x/4+y.y-r.r
双:x.x/2-y.y-r.r
抛:x.x-r.y.2 , x.x+r.y.2 , y.y+r.x/2 , y.y-r.x/2 ,
x.x-y.y y.y+r.x

) do (
set fc=%%f&set fc=!fc:.=*!
echo fc=!fc!
set fc=!fc:*:=!
call:zb
)

::::对话输入部分::::
echo [输入方程] [圆半径或值域] [单图:回车0符号] [全方程:-1] [全图:字母除x,y^>30]
set fc=x*x/4+y*y-r*r
:fc
echo 列:!fc! !r!
set/p f=
echo !f!|findstr /i "x y">nul&&(set fc=!f!)||(
if !f! equ -1 set r=-1&goto fs
if !f! gtr 0 if !f! leq 30 (set r=!f!) else (goto fs)
)
call:zb !fc! !r!
goto fc


:::::建立坐标系处理方程图:::::::
:zb
if not "%1" =="" set fc=%1& set r=%2
if not "%3" =="" set %3=&goto fs&ext/b
for /l %%y in (!r! -1 -!r!) do (set/a"y=%%y ,r'=r*2,min=~(1<<31),t=r"
for /l %%x in ( -!r'! 1 !r'!) do (set/a"x=%%x",双引号不能分行或在行首位,^

输出方程线, c=!fc! ,^

c="(c>>31|1)*c",1"/(c-min+1>>31)"2>nul,min=c,".=(r'+x)%%(r'+1)"
set/a"1/(^!(y-r)*(x&1))"2>nul&&set str=!str! )

if !min! leq !r'! call echo.^
%%str:~,!.!%%*%%str:~!.!%%%%str:~!.!%%*
)
set str=&echo.
exit/b

附件
未命名.gif (22.9 KiB)
第2楼 acaigg 发表于 2011-01-04 11:14
初级用户 发帖 92 积分 115
学习一下。
第3楼 qwd 发表于 2011-01-05 00:17
初级用户 发帖 56 积分 161
自己顶下!
发挥你的想象 不同表达式有不同曲线输出的!请多多发图效!
第4楼 qwd 发表于 2011-01-05 21:29
初级用户 发帖 56 积分 161
这个大家没兴趣玩吗!还以为看贴多的给点建议,比如左右单边抛物线上还未处理都是对称显示出来的!
第5楼 x1x1h 发表于 2016-11-19 11:23
新手上路 发帖 4 积分 5
我感觉很好玩,但是还需要在优化一下下,就更好啦,顶一下。
第6楼 niudd 发表于 2017-02-28 11:27
中级用户 发帖 205 积分 219
新手表示比较复杂
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023