@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