标题: 输出方程曲线图
[打印本页]
作者: qwd
时间: 2011-1-3 19:44
标题: 输出方程曲线图
@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
附件
1: 未命名.gif (2011-1-3 19:44, 22.9 K)
作者: acaigg
时间: 2011-1-4 11:14
学习一下。
作者: qwd
时间: 2011-1-5 00:17
自己顶下!
发挥你的想象 不同表达式有不同曲线输出的!请多多发图效!
作者: qwd
时间: 2011-1-5 21:29
这个大家没兴趣玩吗!还以为看贴多的给点建议,比如左右单边抛物线上还未处理都是对称显示出来的!
作者: x1x1h
时间: 2016-11-19 11:23
我感觉很好玩,但是还需要在优化一下下,就更好啦,顶一下。
作者: niudd
时间: 2017-2-28 11:27
新手表示比较复杂