Board logo

标题: 输出方程曲线图 [打印本页]

作者: 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 KiB)



作者: 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
新手表示比较复杂