分形/emndl
外观
< 分形
emndl 是克劳德·海兰德-艾伦的程序:指数 曼德勃罗集的可视化输出选项包括
- 高瘦的图像
- 通过反转坐标变换,由图像条制作的缩放视频
emndl_autotune
- 尝试在曼德勃罗集找到可能看起来不错的有趣点
- 在 Haskell 中实现
- 目前需要使用 integer-simple(不是默认的 integer-gmp)构建的 GHC,以便 MPFR 绑定正常工作
先决条件
- 用于构建大多数程序
- gcc
- g++
- libqd-dev - C++ 和 F90 中的双双精度和四精度类型
- 用于构建 emndl_autotune
- ghc
- cabal
- 用于运行
- bash
- getopt (GNU)
- bc
- imagemagick -- 用于图像输出
- 用于 DVD 输出
- y4mscaler 是一种视频缩放器,它对 YUV4MPEG2 流进行操作,如 MJPEGtools 项目 中的工具所使用。
- mpeg2enc - 使用 mjpegtools 库将原始视频编码为 MPEG-1/2 基本流。
- ffmpeg -- 用于 mkv 输出
- ffmpeg2theora -- 用于 ogv 输出
- ecasound, puredata -- 用于视频配乐
对于 emndl
git clone https://code.mathr.co.uk/emndl.git cd emndl make
对于 emndl_autotune
cabal update cabal install --lib Vec cabal install --lib hmpfr make emndl_autotune ghc -O3 -Wall -threaded -rtsopts -fspec-constr-count=50 -package Vec -package hmpfr -package parallel -package reflection -package random -package ad --make emndl_autotune.hs
./emndl.sh --help usage options: --help -h -? show this message and exit --version show version and exit input options: --auto bits find an interesting point with precision 'bits' --re real choose coordinates --im imag --period p --maxiters n --size sz render options: --quality q horizontal size, (5 - 12) image options: --png generate full size PNG --jpeg generate thumbnail JPEG video options: --aspect w:h output aspect (4:3, 16:9) --speed s zoom speed (default 1) --dvd generate PAL DVD (SD) --mkv generate Matroska (HD) --ogv generate Theora (LD) other options: --quiet less output --verbose more output
emndl_2018-08-03T11-23-16.mkv 的坐标
REALCOORD=-1.2502259692930972582217787794367516384674267311920345554701091121819451616288474903375439125840028505381241666e+00 IMAGCOORD=-3.42180858457804363065272789355461346156675050268516641110743928004962993736897391706380916640147746335618768713e-01 PERIOD=396 MAXITERS=100100 SIZE=7.5089502353440369e-38
emndl_vs_nanomb_2018-08-03(在 archive.org 上)的坐标
REALCOORD=2.32881715984171619523670105543682540038728554391151374122585121905032044832510538073674973239588027974526386357263542756141209509076915793136483409366732770101220857708891025180202484778852216373074628804662000573668390738172817193728347860445256777791916983537169476478249277392675920481935444775336796e-02 IMAGCOORD=8.15519594089994179859195278340598576447528880907449779065614659131971532215140192176068680822666750642391111578468988890742131839375371458052054010234250333939153906090539688498799065846221616933966400388040076657090140783996781080255541492455790725921287002240432954348425982356238830635005863927114069e-01 PERIOD=26079 MAXSUPERITERS=1000 SIZE=1.9302144566912991e-298
./emndl.sh --quality 7 --png --jpeg --re -1.241733127596417466318604 --im -0.1698965841028383922879327
结果
AUTO=0 AUTOBITS=128 REAL=1 REALCOORD=-1.241733127596417466318604 IMAG=1 IMAGCOORD=-0.1698965841028383922879327 PER=0 PERIOD=1 MAXITERS=1000 SZ=0 SIZE=1 QUALITY=7 PNG=1 JPEG=1 ASPECT=16:9 SPEED=1 DVD=0 MKV=0 OGV=0 VERBOSE=1 WIDE=1 WIDTH=128 VWIDTH=128 VHEIGHT=72 E=/home/a/emndl OUT=emndl_2022-11-20T19:47:29+01:00 calculating.. Atom domain: period: 1 zmag: 1.2533 HC centre: (1.24173,0.169897) (relative to location) Esc R(new):1e+29 Esc R(old):1e+30 Precision: 7 ----------------------------------------------- __(-1.24173,-0.169897) i: 0 j: 0 val: (-1.24173,-0.169897) i: 0 j: 1 val: (1,0) i: 0 j: 2 val: (0,0) i: 0 j: 3 val: (0,0) i: 0 j: 4 val: (0,0) i: 0 j: 5 val: (0,0) i: 0 j: 6 val: (0,0) i: 0 j: 7 val: (0,0) i: 0 j: 8 val: (0,0) ----------------------- ... ----------------------- i: 16 j: 0 val: (0,0) i: 16 j: 1 val: (0,0) i: 16 j: 2 val: (0,0) i: 16 j: 3 val: (0,0) i: 16 j: 4 val: (0,0) i: 16 j: 5 val: (0,0) i: 16 j: 6 val: (0,0) i: 16 j: 7 val: (0,0) i: 16 j: 8 val: (0,0) ----------------------- R == 1e+30 NOTICE: precision is sufficient: 7 <= 64 finalizing..e scanline 326 / 326 equalizing.. computing depth.. DEPTH=2 downscaling.. colourizing.. making images.. making videos.. making soundtrack.. 2022-11-20T19:47:29+01:00 begin 2022-11-20T19:47:30+01:00 end
./emndl.sh --quality 10 --png --jpeg --dvd --ogv --re -0.5988529658460445113700557999169873572638106766467118517477 --im -0.6627873418981974683919856287279365042423603984338094007074
AUTO=0 AUTOBITS=128 REAL=1 REALCOORD=-0.5988529658460445113700557999169873572638106766467118517477 IMAG=1 IMAGCOORD=-0.6627873418981974683919856287279365042423603984338094007074 PER=0 PERIOD=1 MAXITERS=1000 SZ=0 SIZE=1 QUALITY=10 PNG=1 JPEG=1 ASPECT=16:9 SPEED=1 DVD=1 MKV=0 OGV=1 VERBOSE=1 WIDE=1 WIDTH=1024 VWIDTH=960 VHEIGHT=540 E=/home/a/emndl OUT=emndl_2022-11-20T19:54:31+01:00 calculating.. Atom domain: period: 1 zmag: 0.893259 HC centre: (0.598853,0.662787) (relative to location) Esc R(new):1e+29 Esc R(old):1e+30 Precision: 9 ----------------------------------------------- __(-0.598853,-0.662787) i: 0 j: 0 val: (-0.598853,-0.662787) i: 0 j: 1 val: (1,0) i: 0 j: 2 val: (0,0) i: 0 j: 3 val: (0,0) i: 0 j: 4 val: (0,0) i: 0 j: 5 val: (0,0) i: 0 j: 6 val: (0,0) i: 0 j: 7 val: (0,0) i: 0 j: 8 val: (0,0) ----------------------- ... ----------------------- i: 16 j: 0 val: (0,0) i: 16 j: 1 val: (0,0) i: 16 j: 2 val: (0,0) i: 16 j: 3 val: (0,0) i: 16 j: 4 val: (0,0) i: 16 j: 5 val: (0,0) i: 16 j: 6 val: (0,0) i: 16 j: 7 val: (0,0) i: 16 j: 8 val: (0,0) ----------------------- R == 1e+30 NOTICE: precision is sufficient: 9 <= 64 finalizing..e scanline 2608 / 2608 equalizing.. computing depth.. DEPTH=2 downscaling.. colourizing.. making images.. making videos.. ./emndl.sh: linia 260: y4mscaler: nie znaleziono polecenia ./emndl.sh: linia 261: mpeg2enc: nie znaleziono polecenia making soundtrack.. ./emndl.sh: linia 279: ecasound: nie znaleziono polecenia ./emndl.sh: linia 282: pd: nie znaleziono polecenia ./emndl.sh: linia 292: twolame: nie znaleziono polecenia ./emndl.sh: linia 306: oggenc: nie znaleziono polecenia ./emndl.sh: linia 293: mplex: nie znaleziono polecenia ./emndl.sh: linia 307: oggz-merge: nie znaleziono polecenia 2022-11-20T19:54:31+01:00 begin 2022-11-20T19:54:48+01:00 end
export LD_LIBRARY_PATH=${HOME}/opt/lib export PATH=${HOME}/opt/bin:${PATH} ./emndl.sh --auto 96 --png --jpeg 12 1 0.0000e+00 0.0000e+00 7.50000000e-01 20 5 -4.4212341e-02 9.8658085e-01 2.54836585e-03 36 21 -4.08647509785e-02 9.82536914715e-01 4.88178316e-08 62 115 -4.0864860818013505432e-02 9.8253687241578015568e-01 7.76448686e-16 98 596 -4.086486081801155519398814148626e-02 9.825368724157807120516621196188e-01 1.02641550e-26 AUTO=1 AUTOBITS=96 REAL=0 REALCOORD=-4.086486081801155519398814148626e-02 IMAG=0 IMAGCOORD=9.825368724157807120516621196188e-01 PER=0 PERIOD=596 MAXITERS=1000 SZ=0 SIZE=1.3685540417099322e-26 QUALITY=8 PNG=1 JPEG=1 ASPECT=16:9 SPEED=1 DVD=0 MKV=0 OGV=0 VERBOSE=1 WIDE=1 WIDTH=256 VWIDTH=256 VHEIGHT=144 E=/home/a/emndl OUT=emndl_2022-11-23T18:42:44+01:00 calculating.. Atom domain: period: 1 zmag: 0.983386 HC centre: (0.0408649,-0.982537) (relative to location) Esc R(new):1e+29 Esc R(old):1e+30 Precision: 7 ----------------------------------------------- Atom domain: period: 5 zmag: 0.0821434 HC centre: (-0.0033475,0.0040441) (relative to location) Esc R(new):0.0129093 Esc R(old):0.129093 Precision: 15 ----------------------------------------------- Atom domain: period: 21 zmag: 0.000401242 HC centre: (1.0984e-07,4.23041e-08) (relative to location) Esc R(new):5.29777e-05 Esc R(old):0.000529777 Precision: 15 ----------------------------------------------- Atom domain: period: 115 zmag: 4.75912e-08 HC centre: (-1.95024e-15,-5.56367e-16) (relative to location) Esc R(new):7.04258e-10 Esc R(old):7.04258e-09 Precision: 16 ----------------------------------------------- Atom domain: period: 596 zmag: 5.78401e-18 HC centre: (-9.69691e-32,-9.40874e-31) (relative to location) Esc R(new):1.34034e-17 Esc R(old):1.34034e-16 Precision: 16 ----------------------------------------------- __(3.43351e-18,4.65465e-18) i: 0 j: 0 val: (3.43351e-18,4.65465e-18) i: 0 j: 1 val: (5.26731e+12,-3.10641e+12) i: 0 j: 2 val: (2.27498e+28,-3.95469e+28) i: 0 j: 3 val: (8.00832e+41,-2.21767e+44) i: 0 j: 4 val: (-3.90043e+59,-6.85294e+59) i: 0 j: 5 val: (-1.88333e+75,-1.10284e+75) i: 0 j: 6 val: (-4.88467e+90,-2.09717e+88) i: 0 j: 7 val: (-7.86231e+105,4.50434e+105) i: 0 j: 8 val: (-7.22294e+120,1.21745e+121) ----------------------- i: 1 j: 0 val: (0,0) i: 1 j: 1 val: (0,0) i: 1 j: 2 val: (0,0) i: 1 j: 3 val: (0,0) i: 1 j: 4 val: (0,0) i: 1 j: 5 val: (0,0) i: 1 j: 6 val: (0,0) i: 1 j: 7 val: (0,0) i: 1 j: 8 val: (0,0) ----------------------- i: 2 j: 0 val: (1.16559e+13,-2.63086e+12) i: 2 j: 1 val: (1.32558e+29,-1.18897e+29) i: 2 j: 2 val: (4.17497e+44,-1.22718e+45) i: 2 j: 3 val: (-1.13749e+60,-6.02728e+60) i: 2 j: 4 val: (-1.36998e+76,-1.61469e+76) i: 2 j: 5 val: (-5.33318e+91,-1.93651e+91) i: 2 j: 6 val: (-1.20729e+107,2.06746e+106) i: 2 j: 7 val: (-1.69961e+122,1.36808e+122) i: 2 j: 8 val: (-1.33031e+137,2.97704e+137) ----------------------- i: 3 j: 0 val: (0,0) i: 3 j: 1 val: (0,0) i: 3 j: 2 val: (0,0) i: 3 j: 3 val: (0,0) i: 3 j: 4 val: (0,0) i: 3 j: 5 val: (0,0) i: 3 j: 6 val: (0,0) i: 3 j: 7 val: (0,0) i: 3 j: 8 val: (0,0) ----------------------- i: 4 j: 0 val: (1.58875e+29,-7.00615e+28) i: 4 j: 1 val: (1.52864e+45,-2.0086e+45) i: 4 j: 2 val: (2.54531e+60,-1.7701e+61) i: 4 j: 3 val: (-2.95186e+76,-7.66605e+76) i: 4 j: 4 val: (-2.11528e+92,-1.74947e+92) i: 4 j: 5 val: (-6.9792e+107,-1.2693e+107) i: 4 j: 6 val: (-1.3956e+123,4.64333e+122) i: 4 j: 7 val: (-1.77273e+138,1.77606e+138) i: 4 j: 8 val: (-1.5096e+153,3.32683e+153) ----------------------- i: 5 j: 0 val: (0,0) i: 5 j: 1 val: (0,0) i: 5 j: 2 val: (0,0) i: 5 j: 3 val: (0,0) i: 5 j: 4 val: (0,0) i: 5 j: 5 val: (0,0) i: 5 j: 6 val: (0,0) i: 5 j: 7 val: (0,0) i: 5 j: 8 val: (0,0) ----------------------- i: 6 j: 0 val: (1.3519e+45,-9.23641e+44) i: 6 j: 1 val: (1.05008e+61,-2.06423e+61) i: 6 j: 2 val: (-5.24778e+75,-1.59172e+77) i: 6 j: 3 val: (-3.62984e+92,-6.07839e+92) i: 6 j: 4 val: (-1.97052e+108,-1.14993e+108) i: 6 j: 5 val: (-5.66073e+123,-1.94389e+122) i: 6 j: 6 val: (-1.02695e+139,4.62395e+138) i: 6 j: 7 val: (-1.34514e+154,1.31384e+154) i: 6 j: 8 val: (-1.9291e+169,2.43431e+169) ----------------------- i: 7 j: 0 val: (0,0) i: 7 j: 1 val: (0,0) i: 7 j: 2 val: (0,0) i: 7 j: 3 val: (0,0) i: 7 j: 4 val: (0,0) i: 7 j: 5 val: (0,0) i: 7 j: 6 val: (0,0) i: 7 j: 7 val: (0,0) i: 7 j: 8 val: (0,0) ----------------------- i: 8 j: 0 val: (8.03788e+60,-7.85714e+60) i: 8 j: 1 val: (4.56251e+76,-1.47389e+77) i: 8 j: 2 val: (-2.02153e+92,-1.0065e+93) i: 8 j: 3 val: (-2.81953e+108,-3.37907e+108) i: 8 j: 4 val: (-1.26107e+124,-5.16602e+123) i: 8 j: 5 val: (-3.24269e+139,1.97294e+138) i: 8 j: 6 val: (-5.84003e+154,2.49333e+154) i: 8 j: 7 val: (-1.04573e+170,6.14084e+169) i: 8 j: 8 val: (-2.51583e+185,1.6916e+185) ----------------------- i: 9 j: 0 val: (0,0) i: 9 j: 1 val: (0,0) i: 9 j: 2 val: (0,0) i: 9 j: 3 val: (0,0) i: 9 j: 4 val: (0,0) i: 9 j: 5 val: (0,0) i: 9 j: 6 val: (0,0) i: 9 j: 7 val: (0,0) i: 9 j: 8 val: (0,0) ----------------------- i: 10 j: 0 val: (3.52949e+76,-4.82147e+76) i: 10 j: 1 val: (1.11202e+92,-7.85671e+92) i: 10 j: 2 val: (-1.74272e+108,-4.78352e+108) i: 10 j: 3 val: (-1.54592e+124,-1.41788e+124) i: 10 j: 4 val: (-5.96547e+139,-1.84904e+139) i: 10 j: 5 val: (-1.46932e+155,5.06642e+153) i: 10 j: 6 val: (-3.26863e+170,5.36225e+169) i: 10 j: 7 val: (-9.21875e+185,2.22567e+185) i: 10 j: 8 val: (-2.62545e+201,1.53132e+201) ----------------------- i: 11 j: 0 val: (0,0) i: 11 j: 1 val: (0,0) i: 11 j: 2 val: (0,0) i: 11 j: 3 val: (0,0) i: 11 j: 4 val: (0,0) i: 11 j: 5 val: (0,0) i: 11 j: 6 val: (0,0) i: 11 j: 7 val: (0,0) i: 11 j: 8 val: (0,0) ----------------------- i: 12 j: 0 val: (1.17508e+92,-2.26762e+92) i: 12 j: 1 val: (-1.48869e+106,-3.27023e+108) i: 12 j: 2 val: (-9.24682e+123,-1.79275e+124) i: 12 j: 3 val: (-6.31679e+139,-4.91195e+139) i: 12 j: 4 val: (-2.23303e+155,-7.73627e+154) i: 12 j: 5 val: (-6.32356e+170,-1.31143e+170) i: 12 j: 6 val: (-2.14638e+186,-2.53377e+185) i: 12 j: 7 val: (-7.73712e+201,1.39915e+201) i: 12 j: 8 val: (-2.09628e+217,1.50196e+217) ----------------------- i: 13 j: 0 val: (0,0) i: 13 j: 1 val: (0,0) i: 13 j: 2 val: (0,0) i: 13 j: 3 val: (0,0) i: 13 j: 4 val: (0,0) i: 13 j: 5 val: (0,0) i: 13 j: 6 val: (0,0) i: 13 j: 7 val: (0,0) i: 13 j: 8 val: (0,0) ----------------------- i: 14 j: 0 val: (2.99288e+107,-8.48534e+107) i: 14 j: 1 val: (-1.37995e+123,-1.09929e+124) i: 14 j: 2 val: (-3.4462e+139,-5.61505e+139) i: 14 j: 3 val: (-1.99107e+155,-1.67848e+155) i: 14 j: 4 val: (-7.56544e+170,-4.85276e+170) i: 14 j: 5 val: (-3.22153e+186,-1.64147e+186) i: 14 j: 6 val: (-1.50281e+202,-2.57623e+201) i: 14 j: 7 val: (-5.47944e+217,1.52875e+217) i: 14 j: 8 val: (-1.31202e+233,1.2574e+233) ----------------------- i: 15 j: 0 val: (0,0) i: 15 j: 1 val: (0,0) i: 15 j: 2 val: (0,0) i: 15 j: 3 val: (0,0) i: 15 j: 4 val: (0,0) i: 15 j: 5 val: (0,0) i: 15 j: 6 val: (0,0) i: 15 j: 7 val: (0,0) i: 15 j: 8 val: (0,0) ----------------------- i: 16 j: 0 val: (5.9467e+122,-2.59355e+123) i: 16 j: 1 val: (-6.03661e+138,-3.10484e+139) i: 16 j: 2 val: (-9.10047e+154,-1.64806e+155) i: 16 j: 3 val: (-5.1965e+170,-7.04042e+170) i: 16 j: 4 val: (-2.99237e+186,-3.23487e+186) i: 16 j: 5 val: (-1.9257e+202,-1.09749e+202) i: 16 j: 6 val: (-9.57639e+217,-7.39729e+216) i: 16 j: 7 val: (-3.20512e+233,1.40031e+233) i: 16 j: 8 val: (-6.68272e+248,8.50103e+248) ----------------------- R == 1.34034e-16 NOTICE: precision is sufficient: 16 <= 64 finalizing..e scanline 3078 / 3078 equalizing.. computing depth.. DEPTH=12 downscaling.. colourizing.. making images.. making videos.. making soundtrack.. 2022-11-23T18:42:44+01:00 begin 2022-11-23T18:43:07+01:00 end
emndl_autotune +RTS -N -RTS 80 P 1 R 0.0 I 0.0 @ 1 ▄ ▄ ███ ▄███▄ ▄ ███████████▄█▀ ███████████████▄ ▄▄▄ ▄█████████████████ ▄█████▄ █████████████████ ▄▄▄▄▄▄▄▄▄▄▄█▄███████▄████████████████▀ ▀ ███████ █████████████████ ███▀▀ █████████████████▄ ████████████████▀ ▀▀█████████████ ▀▀▀▀█████▀█ ▀▀ ███ ▀█▀ ▄ P 4 R -0.1565201668337550617989867 I -1.032247108922831801671601 @ 8.2966360777899879795193e-3 ▄▄▄ █▄ ████▄███████▄█ ▀█████████████ ███████████████ ▄▄███████████████▄▄ ██████████████████▄ ▀███████████████████▀ ███████████████████▄ ▄▄ ██████████████████▀ ▄▄████████████████████▀▀ ████████ ▀███████████▄▄ ▄██████▀ ▀▀▀█▀▀ ▀██ ▀▀▀▀▀█ P 31 R -0.1534817415674078270901370 I -1.030177111803473792344760 @ 2.261921892899238897e-7 -0.1534817415674078270901370 -1.030177111803473792344760 5
c = c0 + cexp(x + i y)
x + i y = clog(c - c0)
缩放 2pi/width
以下是代码的相关部分
// emndl_calculate.cc
N progress = 0;
907 #pragma omp parallel for schedule(dynamic)
908 for (N y = 0; y < height; ++y)
909 {
910 for (N x = 0; x < width; ++x)
911 {
912 R_lo t0 = (x + jitter(x, y, 0)) / width * 2 * pi;
913 R_lo c0 = cosl(t0);
914 R_lo s0 = sinl(t0);
915 R_lo t1 = (x + jitter(x, y, 0) + 1) / width * 2 * pi;
916 R_lo c1 = cosl(t1);
917 R_lo s1 = sinl(t1);
918 R_lo l0 = (y + jitter(x, y, 1)) / width * 2 * pi;
919 R_lo r0 = expl(8 - l0);
920 C_lo dc(r0 * c0, r0 * s0);
921 C_lo dc1(r0 * c1, r0 * s1);
922 R_lo pixel_spacing = sqrtl(norm(dc1 - dc));
923 N si(0);
924 int iters = 0;
925 float trans = 0.0f;
926 //we need to send the nucleus position wrt the center of the picture.
927 R_lo v = iteratePtDE1( dc, SSAs, ref, maxsi, maxiters, si, iters, trans);//
928 //R_lo v = iteratePtDE( dc, fp, ref, period, maxiters, Bout, si, iters, trans);
929
930 float dwell = v <= 0 ? -1 : 16 + iters + trans;
931 float distance = fabsl(v / pixel_spacing);
932 float angle = 0;
933 float isperiod = 0;
934 float isnewton = 0;
935 float *result = buffer + size_t(y) * width * CHANNELS + x * CHANNELS;
936 result[0] = dwell;
937 result[1] = distance;
938 result[2] = angle;
939 result[3] = isperiod;
940 result[4] = isnewton;
941
942 }
943 #pragma omp critical
944 cerr << "\timage scanline " << ++progress << " / " << height << "\r";
945 }
946 }
// emndl_unwarp.c
float h = 1.0 / sqrt(ow * ow + oh * oh);
141 float k = img->width / 8.0;
142 float dy = speed * k / 25.0;
143 for (float y0 = 0; y0 < img->height - img->width; y0 += dy) {
144 {
145 int j;
146 int i; float p, q, d, x, y, l; int c;
147 #pragma omp parallel for private(i, p, q, d, x, y, l, c)
148 // schedule(static, 1)
149 for (j = 0; j < oh; ++j) {
150 for (i = 0; i < ow; ++i) {
151 p = (i - (ow >> 1) + 0.5f) * h;
152 q = ((oh >> 1) - j - 0.5f) * h;
153 d = (logf(sqrtf(p * p + q * q)) * 0.15915494309189535f) * img->width;
154 x = (atan2f(-q, -p) * 0.15915494309189535f + 0.5f) * img->width;
155 y = y0 - d;
156 l = - log2f(sqrtf(p * p + q * q)) - 2;
157 for (c = 0; c < 3; ++c) {
158 out[(j * ow + i) * 3 + c] = clamp(pixel2(img, l, y, x, c) * 255, 0, 255);
159 }
160 }
161 }
162 }
163 if (1 != fwrite(header, strlen(header), 1, stdout)) exit(2);
164 if (1 != fwrite(out, ow * oh * 3, 1, stdout)) exit(3);
165 {
166 float l = -log2(img->width / 960.0);
167 for (int s = 0; s < 1920; ++s) {
168 for (int c = 0; c < 2; ++c) {
169 float x = fmod(s / 960.0 + 0.5 * c, 1) * img->width;
170 float y = y0 + dy * (s / 1920.0);
171 float a = pixel2(img, l, y, x, 0) + pixel2(img, l, y, x, 1) + pixel2(img, l, y, x, 2);
172 au[2 * s + c] = a / 3.0 - 0.5;
173 }
174 }
175 }
176 if (1 != fwrite(au, 1920 * 2 * sizeof(float), 1, stderr)) exit(6);
177 }
178 return 0;
179 }
- 克劳德的坠入曼德勃罗集(360 度测试) 一个有转折的分形缩放。从黎曼球体内投影,图像从下方展开并滚动经过,然后收缩到头顶。这是一个第一次测试,有一些缺陷,比如糟糕的纹理贴图级别曲线。渲染时间 6 小时。坐标
- Cx = -1.76915100313963348631585617219113282419006284180146489000041
- cyu = +0.00558166050979690182753149300394271544944337923388479000001i
- @ 1e-21(缩放)
- 克劳德的错位奶油甜甜圈(Dinkydau) 和原始页面 DinkydauSet 的错位奶油甜甜圈
- 视频:360 度曼德勃罗集分形缩放,缩放至 Dinkydau 的“错位奶油甜甜圈”位置中心的迷你曼德勃罗集。使用 'emndl' 渲染,使用了 knighty 的 'nanomb2' 中的算法。