[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[特效代码] 分形图:希尔伯特曲线(Hilbert curve)

本帖最后由 a20150604 于 2017-5-2 02:28 编辑

  1. @echo off & setlocal enableDelayedExpansion
  2. REM 方向运算
  3. set "D=y+=bw2" & set "U=y-=bw2" & set "L=x-=bw2" & set "R=x+=bw2"
  4. for /L %%T in (1 1 6) do (
  5.     REM 向量总长: 4 * ( 1<<(iterations-1)*2 ) - 1
  6.     REM set /a "iterations=4, basewid=6, bw2=basewid*2, hei=wid=basewid*4*(1<<iterations-1), x=xs=wid*1/(4*(1<<iterations-1)), y=ys=wid-xs, imax = 4 * ( 1<<(iterations-1)*2 ) - 1 - 1"
  7.     set /a "hei=wid=256*2, iterations=%%T"
  8.     set /a "basewid=wid/(4*(1<<iterations-1)), bw2=basewid*2, x=xs=wid*1/(4*(1<<iterations-1)), y=ys=wid-xs, imax = 4 * ( 1<<(iterations-1)*2 ) - 1 - 1"
  9.     set "C="
  10.     set "R_C="
  11.     echo;C=!C!
  12.     echo;R_C=!R_C!
  13.     for /L %%i in (1 1 !iterations!) do (
  14.         set "CW=!C!"
  15.         set "AC=!C!"
  16.         set "R_CW=!R_C!"
  17.         set "R_AC=!R_C!"
  18.         if "!C!" neq "" (
  19.             REM 顺旋:
  20.             REM R->T, U->R, L->U, D->L, T->D
  21.             set "CW=!CW:R=T!"
  22.             set "CW=!CW:U=R!"
  23.             set "CW=!CW:L=U!"
  24.             set "CW=!CW:D=L!"
  25.             set "CW=!CW:T=D!"
  26.             REM 逆旋:
  27.             REM L->T, U->L, R->U, D->R, T->D
  28.             set "AC=!AC:L=T!"
  29.             set "AC=!AC:U=L!"
  30.             set "AC=!AC:R=U!"
  31.             set "AC=!AC:D=R!"
  32.             set "AC=!AC:T=D!"
  33.             REM 顺旋:
  34.             REM R->T, U->R, L->U, D->L, T->D
  35.             set "R_CW=!R_CW:R=T!"
  36.             set "R_CW=!R_CW:U=R!"
  37.             set "R_CW=!R_CW:L=U!"
  38.             set "R_CW=!R_CW:D=L!"
  39.             set "R_CW=!R_CW:T=D!"
  40.             REM 逆旋:
  41.             REM L->T, U->L, R->U, D->R, T->D
  42.             set "R_AC=!R_AC:L=T!"
  43.             set "R_AC=!R_AC:U=L!"
  44.             set "R_AC=!R_AC:R=U!"
  45.             set "R_AC=!R_AC:D=R!"
  46.             set "R_AC=!R_AC:T=D!"
  47.         )
  48.         set "C=!R_CW!U!C!R!C!D!R_AC!"
  49.         REM 逆时针90度正行 + 上 + 逆行 + 左 + 逆行 + 下 + 顺时针90度正行
  50.         set "R_C=!AC!U!R_C!L!R_C!D!CW!"
  51.         echo;C=!C!
  52.     )
  53.     <nul >Hilbert_curve%%T.htm (
  54.         echo;^<svg height="!hei!" width="!wid!"^>
  55.                 set /p "=<polyline points=""
  56.                 set /p "=!x!,!y! "
  57.                 for /L %%i in (0 1 !imax!) do (
  58.                     for %%m in ("!C:~%%i,1!") do (
  59.                         set /a "!%%~m!"
  60.                         set /p "=!x!,!y! "
  61.                     )
  62.                 )
  63.                 echo;"
  64.                 set /p "=style="fill:none;stroke:red;stroke-width:1"/>"
  65.                 echo;Sorry, your browser does not support inline SVG.
  66.         echo;^</svg^>
  67.     )
  68.     start "" Hilbert_curve%%T.htm
  69. )
  70. title any key to exit...
  71. >nul pause
  72. exit /b
复制代码
1

评分人数

你直接写HTML不好吗
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

返回列表