返回列表 发帖

[其他] 酷语言在批处理中的应用

CLGO语言正式更名“酷语言”,是一种批处理寄生脚本,帮助批处理实现多彩的绘图功能。随着酷语言社区的不断壮大,开发者日渐增多。本次收集了一些酷语言社区开发者的作品(也包含本人的作品)供大家赏析。打包下载
链接: https://pan.baidu.com/s/1GvIaTNmFGIplbHKDR8GEgw?pwd=jsrp

1.灰色时钟
::*****************************************************************************
  @ECHO OFF&MODE CON COLS=100 LINES=30&CLGO "%~F0"&PAUSE>NUL&EXIT /B
::*****************************************************************************
TO DIAL
MAKE :PENW=2 :PENC=8
REPEAT 60
[
MAKE :PENC=8
PU
FD 130
PD
FD 10
BK 140
RT 6
]
MAKE :PENW=3
REPEAT 12
[
PU
FD 115
PD
FD 25
BK 140
RT 30
]
MAKE :PENW=2
REPEAT 60
[
MAKE :PENC=8
PU
FD 80
PD
FD 20
BK 100
RT 6
]
TO HOUR___HAND :ANGEL :LEN
MINUTE_HAND :ANGEL :LEN
TO MINUTE_HAND :ANGEL :LEN
MAKE :PENC=8 :PENW=4
RT   :ANGEL
FD   :LEN
HM
TO SECOND_HAND :ANGEL :LEN
MAKE :PENC=6 :PENW=3
RT   :ANGEL
FD   :LEN
HM
TO MAIN
MAKE :PENS=2
DIAL
MAKE :PENC=8 :PENW=6
OVAL 139 139 0
MAKE :PENC=8 :PENW=3
OVAL 100 100 0
MAKE :PENC=8
OVAL 80  80  0
MAKE :PENC=4
OVAL 3   3   0
MEMUSE
WHILE
[
HOUR___HAND (TIME(3)+TIME(4)/60)*30  60
MINUTE_HAND (TIME(4)+TIME(5)/60)*6   80
SECOND_HAND (TIME(5)*6) 110
TEXT   24  0  15  微软雅黑 {TIME(3)}时{TIME(4)}分{TIME(5)}秒
MEMSEE
WAIT 1000
]
MEMOUTCOPY
2.蝴蝶曲线
::*****************************************************************************
  @ECHO OFF&MODE CON COLS=100 LINES=30&CLGO "%~F0"&PAUSE>NUL&EXIT /B
::*****************************************************************************
TO MAIN
MAKE :PENS=2 :PENW=13 :PENC=4
FOR  ::T 0 3600
IF ::T%360=0
MAKE :PENC=RAND(15)+1
]
MAKE  :PEN0=(EXP(COS(DEG(::T)))-2*COS(DEG(4*::T))+(SIN(DEG(::T/12)))^5)*70
SETXY :PEN0*COS(DEG(::T)) :PEN0*SIN(DEG(::T))
]COPY
3.转动的鸡蛋
::*****************************************************************************
  @ECHO OFF&MODE CON COLS=100 LINES=30&CLGO "%~F0"&PAUSE>NUL&EXIT /B
::*****************************************************************************
TO TC :A :B :K :XX :YY :Z :W :R
MAKE :PENX=:A*(COS(0))*(COS(DEG(:Z)))-(:B*(SIN(0))/(1-:K*(SIN(0))))*(SIN(DEG(:Z)))+:XX
MAKE :PENY=:A*(COS(0))*(SIN(DEG(:Z)))+(:B*(SIN(0))/(1-:K*(SIN(0))))*(COS(DEG(:Z)))+:YY
FOR ::I 0 360
SETXY :A*(COS(DEG(::I)))*(COS(DEG(:Z)))-(:B*(SIN(DEG(::I)))/(1-:K*(SIN(DEG(::I)))))*(SIN(DEG(:Z)))+:XX :A*(COS(DEG(::I)))*(SIN(DEG(:Z)))+(:B*(SIN(DEG(::I)))/(1-:K*(SIN(DEG(::I)))))*(COS(DEG(:Z)))+:YY
MAKE  :PENX=:A*(COS(DEG(::I)))*(COS(DEG(:Z)))-(:B*(SIN(DEG(::I)))/(1-:K*(SIN(DEG(::I)))))*(SIN(DEG(:Z)))+:XX
MAKE  :PENY=:A*(COS(DEG(::I)))*(SIN(DEG(:Z)))+(:B*(SIN(DEG(::I)))/(1-:K*(SIN(DEG(::I)))))*(COS(DEG(:Z)))+:YY
IF :W=::I
FOR ::J 1 :R
OVAL ::J ::J 0
]
]
IF :W=360-::I
FOR ::J 1 :R
OVAL ::J ::J 0
]
]
IF :W=2*::I
FOR ::J 1 :R
OVAL ::J ::J 0
]
]
]
TO MAIN
MAKE :PENS=4 :PENW=2
MEMUSE
FOR ::K 0 360
MAKE :PENC=RAND(3)+3
TC 100 130 0.4 0 0 ::K ::K 10
MEMSEE
WAIT 20
]COPY
4.渐进斜椭圆
::*****************************************************************************
  @ECHO OFF&MODE CON COLS=100 LINES=30&CLGO "%~F0"&PAUSE>NUL&EXIT /B
::*****************************************************************************
//绘制斜椭圆过程
TO OBLIQUE_ELLIPSES :A :B :X :Y :Z :J
PU
SETXY :A*(COS(0))*(COS(DEG(:Z)))-:B*(SIN(0))*(SIN(DEG(:Z)))+:X    :A*(COS(0))*(SIN(DEG(:Z)))+:B*(SIN(0))*(COS(DEG(:Z)))+:Y
PD
FOR ::T 0 360
[
SETXY :A*(COS(DEG(::T)))*(COS(DEG(:Z)))-:B*(SIN(DEG(::T)))*(SIN(DEG(:Z)))+:X    :A*(COS(DEG(::T)))*(SIN(DEG(:Z)))+:B*(SIN(DEG(::T)))*(COS(DEG(:Z)))+:Y
]:J
//斜椭圆渐变主过程
TO MAIN
MAKE :PENS=2 :PENW=2 :PENC=5
MEMUSE
FOR ::A 360 1
[
OBLIQUE_ELLIPSES 300 100 0 0 10  ::A
         OBLIQUE_ELLIPSES 200 200 0 0 120 ::A
MEMSEE
](-1)
MEMOUTCOPY
5.患有帕金森综合征的线
::*****************************************************************************
  @ECHO OFF&MODE CON COLS=100 LINES=30&CLGO "%~F0"&PAUSE>NUL&EXIT /B
::*****************************************************************************
TO TEST :X1 :Y1 :X2 :Y2
MAKE :PENS=2 :PENW=2 :PENC=4 :PENC=5
MEMUSE
MAKE :X1=-100 :Y1=-120 :X2=100 :Y2=-90
FOR  ::I 1 30
REPEAT 15
MAKE :PENX=:X1 :PENY=:Y1+(RAND(20))
SETXY :X2 :Y2
MAKE :PENX=:X2 :PENY=:Y2
SETXY :X1 :Y1+20
MAKE :PENX=:X1 :PENY=:Y1+20
SETXY :X2 :Y2+(RAND(20))
MEMSEE
MAKE :Y1=:Y1+1
]
REPEAT 15
MAKE :PENX=:X1 :PENY=:Y1+(RAND(20))
SETXY :X2 :Y2
MAKE :PENX=:X2 :PENY=:Y2
SETXY :X1 :Y1+20
MAKE :PENX=:X1 :PENY=:Y1+20
SETXY :X2 :Y2+(RAND(20))
WAIT 10
MEMSEE
MAKE :Y2=:Y2+1
]
]
MEMSEE
MEMOUT
TO MAIN
TEST -100 -100 100 -100COPY
6.正方形递归
::*****************************************************************************
  @ECHO OFF&MODE CON COLS=100 LINES=30&CLGO "%~F0"&PAUSE>NUL&EXIT /B
::*****************************************************************************
TO CYCL :START :ENDPS :STEPS
FOR ::I :START :ENDPS
MAKE :PENC=RAND(15)+1
OVAL ::I/3 ::I ::I
]RAND(12)
TO SQRE :START :ENDPS :STEPS
FOR ::I :START :ENDPS
MAKE :PENC=RAND(15)+1
RECT ::I/3 ::I ::I
]RAND(12)
TO MAIN
MAKE :PENS=4 :PENW=1.2
CYCL 10 300  3
SQRE 10 300  3
MAKE :PENX=-300 :PENY=200
TEXT 22 3 7 微软雅黑 正方形递归COPY
7.银河系的震颤
::*****************************************************************************
  @ECHO OFF&MODE CON COLS=100 LINES=30&CLGO "%~F0"&PAUSE>NUL&EXIT /B
::*****************************************************************************
TO CYCL :START :ENDPS :STEPS
FOR ::I :START :ENDPS
MAKE :PENC=RAND(15)+1
OVAL ::I/(RAND(15)+1) ::I ::I
](-1)*(RAND(5))
TO SQRE :START :ENDPS :STEPS
FOR ::I :START :ENDPS
MAKE :PENC=RAND(15)+1
RECT ::I/(RAND(15)+1) ::I ::I
](-1)*(RAND(5))
TO MAIN
MAKE :PENS=2 :PENW=1.3
REPEAT 10000
MEMUSE
CYCL 200 100 3
MEMSEE
]COPY
8.仙女散花
::*****************************************************************************
  @ECHO OFF&MODE CON COLS=100 LINES=30&CLGO "%~F0"&PAUSE>NUL&EXIT /B
::*****************************************************************************
TO FUNCTIONS_IMG :A
MEMUSE
FOR ::A 1 360*3
MAKE :PENX=-1 :PENY=0
ROTE ::A
MEMSEE
]:A
MEMOUT
TO MORNING_GLORY
REPEAT 12
[
MAKE :PENC=RAND(15)+1
REPEAT 25
[
FD 100
BK 100
RT 2
]
FD 35
]
TO MAIN
MAKE :PENS=4 :PENW=1.6 :PENX=-36 :PENY=126
MORNING_GLORY
FUNCTIONS_IMG 30
REPEAT 30
MAKE  :PENX=RAND(800)-400 :PENY=RAND(500)-300
MORNING_GLORY
]COPY
9.烟花
::*****************************************************************************
  @ECHO OFF&MODE CON COLS=100 LINES=30&CLGO "%~F0"&PAUSE>NUL&EXIT /B
::*****************************************************************************
TO FIRST :X :Y :W :C :A :循环 :旋转角度
REPEAT 20 [
MAKE :PENX=RAND(:X)
MAKE :PENY=RAND(:Y)
MAKE :PENW=RAND(:W)
MAKE :PENC=RAND(:C)
MAKE :HEADING=RAND(:A)
MAKE :旋转角度=RAND(:旋转角度)
REPEAT 100 [
MAKE :循环=:循环+10
PD
FD :循环
PU
BK :循环
LT :旋转角度
WAIT 1
]
]
TO MAIN
FIRST 150 100 3 15 180 0 30COPY
10.运动员(这也是最有趣的一个,来自一位酷语言编程高手的贡献)
::*****************************************************************************
  @ECHO OFF&COLOR 0F&MODE CON COLS=200 LINES=45&CLGO "%~F0"&PAUSE>NUL&EXIT /B
::*****************************************************************************
TO 头 :x :y :r :z臂 :z臂r :y臂 :y臂r :z腕 :z腕r :y腕 :y腕r :z腿 :z腿r :y腿 :y腿r :zx腿 :zx腿r :yx腿 :yx腿r
make :penx=:penx+:x :peny=:peny+:y :heading=:heading+:r
OVAL 10 10 0
OVAL 6 6 0
OVAL 2 2 0
rt 180
fd 80
make :r=:heading :x=:penx :y=:peny :penc=1
左臂 :z臂 :z臂r :z腕 :z腕r
make :heading=:r :penx=:x :peny=:y :penc=:penc+1
右臂 :y臂 :y臂r :y腕 :y腕r
make :heading=:r :penx=:x :peny=:y :penc=:penc+1
左大腿 :z腿 :z腿r :zx腿 :zx腿r
make :heading=:r :penx=:x :peny=:y :penc=:penc+1
右大腿 :y腿 :y腿r :yx腿 :yx腿r
make :heading=:r :penx=:x :peny=:y :penc=:penc+1
bk 80
rt 180
TO 左臂 :z臂 :z臂r :z腕 :z腕r
bk 65
rt :z臂+:z臂r
fd 40
左腕 :z腕 :z腕r
TO 右臂 :y臂 :y臂r :y腕 :y腕r
bk 65
rt :y臂+:y臂r
fd 40
右腕 :y腕 :y腕r
TO 左腕 :z腕 :z腕r
make :penc=:penc+1
rt :z腕+:z腕r
fd 30
TO 右腕 :y腕 :y腕r
make :penc=:penc+1
rt :y腕+:y腕r
fd 30
TO 左大腿 :z腿 :z腿r :zx腿 :zx腿r
rt :z腿+:z腿r
fd 50
左小腿 :zx腿 :zx腿r
TO 右大腿 :y腿 :y腿r :yx腿 :yx腿r
rt :y腿+:y腿r
fd 50
右小腿 :yx腿 :yx腿r
TO 左小腿 :zx腿 :zx腿r
make :penc=:penc+2
rt :zx腿+:zx腿r
fd 50
TO 右小腿 :yx腿 :yx腿r
make :penc=:penc+2
rt :yx腿+:yx腿r
fd 50
to 动 :x :y :r :z臂r :y臂r :z腕r :y腕r :z腿r :y腿r :zx腿r :yx腿r
头 :pen0 :pen1 :r :pen2 :z臂r :pen3 :y臂r :pen4 :z腕r :pen5 :y腕r :pen6 :z腿r :pen7 :y腿r :pen8 :zx腿r :pen9 :yx腿r
make :pen0=:pen0+:x :pen1=:pen1+:y :pen2=:pen2+:z臂r :pen3=:pen3+:y臂r :pen4=:pen4+:z腕r
make :pen5=:pen5+:y腕r :pen6=:pen6+:z腿r :pen7=:pen7+:y腿r :pen8=:pen8+:zx腿r :pen9=:pen9+:yx腿r
TO MAIN
//text 32 0 15 宋体 你好
make :pen0=0 :pen1=0 :pen2=0 :pen3=0 :pen4=0 :pen5=0 :pen6=0 :pen7=0 :pen8=0 :pen9=0 :PENw=4
MEMUSE
WHILE
1 0 1 10 -10 -5 5 0 -10 0 10
MEMSEE
WAIT 100
0 0 0 10 -10 -5 5 -10 0 10 0
MEMSEE
WAIT 100
0 0 0 10 -10 -5 5 0 10 0 -10
MEMSEE
WAIT 100
动 -1 0 1 10 -10 -5 5 10 0 -10 0
MEMSEE
WAIT 100
IF :penx>500
make :penx=-500
]
]
WAIT 100COPY
效果图(均为外链,随时失效)
2

评分人数

回复 2# 老刘1号
把第10个存为bat运行一下,很有趣,是昨天一位高手发给我的,他写的酷作品。
1

评分人数

TOP

返回列表