Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off & setlocal enableDelayedExpansion
- set /a "width=50 - 1", "height=50 - 1"
- for /l %%a in (0,1,%width%) do set "widthBuffer=!widthBuffer! "
- for /l %%a in (0,1,%height%) do ( set "_[%%a]=%widthBuffer%" )
- mode con: cols=52 lines=52
- REM Define Math functions
- set /a "PI=(35500000/113+5)/10, PI_div_2=(35500000/113/2+5)/10, PIx2=2*PI, PI32=PI+PI_div_2"
- set "_SIN=a-a*a/1920*a/312500+a*a/1920*a/15625*a/15625*a/2560000-a*a/1875*a/15360*a/15625*a/15625*a/16000*a/44800000"
- set "SIN(x)=(a=(x * 31416 / 180)%%62832, c=(a>>31|1)*a, a-=(((c-47125)>>31)+1)*((a>>31|1)*62832) + (-((c-47125)>>31))*( (((c-15709)>>31)+1)*(-(a>>31|1)*31416+2*a) ), %_SIN%) / 10000"
- set "COS(x)=(a=(15708 - x * 31416 / 180)%%62832, c=(a>>31|1)*a, a-=(((c-47125)>>31)+1)*((a>>31|1)*62832) + (-((c-47125)>>31))*( (((c-15709)>>31)+1)*(-(a>>31|1)*31416+2*a) ), %_SIN%) / 10000"
- set "_SIN="
- for %%a in ("p1x=22" "p2x=20" "p3x=18" "p4x=16" "p5x=14" "p1y=14" "p2y=14" "p3y=14"
- "p4y=14" "p5y=14" "p6x=12" "p6y=14" "p7x=10" "p7y=14") do set %%~a
- REM --- END INITIALIZE STAGE -----------------------------------------
- REM Infinite loop
- for /l %%# in (0 0 0) do ( set /a "angle+=1"
- set /a "p1x=20 * !cos(x):x=7 * angle! * !sin(x):x=angle! + width/2"
- set /a "p1y=20 * !cos(x):x=7 * angle! * !cos(x):x=angle! + height/2"
- set /a "next_p2x=p1x", "next_p2y=p1y", "next_p3x=p2x", "next_p3y=p2y", "next_p4x=p3x", "next_p4y=p3y", "next_p5x=p4x", "next_p5y=p4y", "next_p6x=p5x", "next_p6y=p5y", "next_p7x=p6x", "next_p7y=p6y"
- set /a "p7x=p6x", "p7y=p6y", "p6x=p5x", "p6y=p5y", "p5x=p4x", "p5y=p4y", "p4x=p3x", "p4y=p3y","p3x=p2x", "p3y=p2y", "p2x=p1x", "p2y=p1y"
- REM Draw our circles, and plot the tail
- for /l %%y in (-1,1,1) do for /l %%x in (-1,1,1) do (
- set /a "S=(%%x * %%x) + (%%y * %%y) - (1 * 1)", "_3div2=1 / 2"
- if !S! geq -1 if !S! leq !_3div2! (
- set /a "_y=%%y+p1y", "_x=%%x+p1x", "_x2=%%x+p1x + 1"
- for /f "tokens=1-4" %%1 in ("_y !_y! !_x! !_x2!") do set "_[!%%1!]=!_[%%2]:~0,%%3!*!_[%%2]:~%%4!
- )
- )
- for /l %%y in (-3,1,3) do for /l %%x in (-3,1,3) do (
- set /a "S=(%%x * %%x) + (%%y * %%y) - (3 * 3)"
- if !S! leq 1 (
- set /a "_y=%%y+24", "_x=%%x+24", "_x2=%%x+25"
- for /f "tokens=1-4" %%1 in ("_y !_y! !_x! !_x2!") do set "_[!%%1!]=!_[%%2]:~0,%%3!o!_[%%2]:~%%4!
- )
- )
- for /l %%a in (2,1,7) do (
- set /a "_y=next_p%%ay", "_x=next_p%%ax", "_x2=next_p%%ax + 1"
- for /f "tokens=1-4" %%1 in ("_y !_y! !_x! !_x2!") do set "_[!%%1!]=!_[%%2]:~0,%%3!*!_[%%2]:~%%4!
- )
- REM Display the screen
- cls
- for /l %%a in (0,1,%height%) do ( echo= !_[%%a]!)
- for /l %%a in (0,1,%height%) do ( set "_[%%a]=%widthBuffer%" )
- )
- exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement