File:IFS (2D) 10082019.png
Size of this preview: 600 × 600 pixels. Other resolutions: 240 × 240 pixels | 480 × 480 pixels | 768 × 768 pixels | 1,024 × 1,024 pixels | 2,048 × 2,048 pixels | 8,000 × 8,000 pixels.
Original file (8,000 × 8,000 pixels, file size: 42.77 MB, MIME type: image/png)
File information
Structured data
Captions
Summary
editDescriptionIFS (2D) 10082019.png |
Deutsch: Ein zweidimensionales Iteriertes Funktionensystem. Formel: void IfsXYIteration(CVector4 &z, const sFractal *fractal, sExtendedAux &aux)
{ //CVector4 oldZ = z; //double fillet = fractal->transformCommon.offset0; CVector4 boxSize = fractal->transformCommon.additionConstant0555; double xOffset = fractal->transformCommon.offset0; double yOffset = fractal->transformCommon.offset05; if(fractal->transformCommon.functionEnabledBxFalse && aux.i >= fractal->transformCommon.startIterationsB && aux.i < fractal->transformCommon.stopIterationsB) z -= boxSize; if (fractal->transformCommon.functionEnabledAxFalse && aux.i >= fractal->transformCommon.startIterationsX && aux.i < fractal->transformCommon.stopIterationsX) z.x = fabs(z.x); if (fractal->transformCommon.functionEnabledAyFalse && aux.i >= fractal->transformCommon.startIterationsY && aux.i < fractal->transformCommon.stopIterationsY) z.y = fabs(z.y); if (fractal->transformCommon.functionEnabledAzFalse && aux.i >= fractal->transformCommon.startIterationsZ && aux.i < fractal->transformCommon.stopIterationsZ) z.z = fabs(z.z); if (fractal->transformCommon.functionEnabledCxFalse && aux.i >= fractal->transformCommon.startIterationsJ && aux.i < fractal->transformCommon.stopIterationsJ) { z.x = fabs(z.x); int poly = fractal->transformCommon.int3; double psi = fabs(fmod(atan(z.y / z.x) + M_PI / poly, M_PI / (0.5 * poly)) - M_PI / poly); double len = sqrt(z.x * z.x + z.y * z.y); z.x = cos(psi) * len; z.y = sin(psi) * len; } if (fractal->transformCommon.functionEnabledBy && aux.i >= fractal->transformCommon.startIterationsD && aux.i < fractal->transformCommon.stopIterationsD) if (z.y > z.x) swap(z.x, z.y); if (fractal->transformCommon.functionEnabledBx && aux.i >= fractal->transformCommon.startIterationsI && aux.i < fractal->transformCommon.stopIterationsI) z = z - boxSize; if (fractal->transformCommon.functionEnabledxFalse && aux.i >= fractal->transformCommon.startIterationsA && aux.i < fractal->transformCommon.stopIterationsA) if (z.x < xOffset) z.x = fabs(z.x - xOffset) + xOffset; if (fractal->transformCommon.functionEnabledy && aux.i >= fractal->transformCommon.startIterationsC && aux.i < fractal->transformCommon.stopIterationsC) if (z.y < yOffset) z.y = fabs(z.y - yOffset) + yOffset; if (aux.i >= fractal->transformCommon.startIterationsE && aux.i < fractal->transformCommon.stopIterationsE) z.x -= fractal->transformCommon.offset1; if (aux.i >= fractal->transformCommon.startIterationsF && aux.i < fractal->transformCommon.stopIterationsF) z.y -= fractal->transformCommon.offsetA1; if (fractal->transformCommon.functionEnabledByFalse && aux.i >= fractal->transformCommon.startIterationsG && aux.i < fractal->transformCommon.stopIterationsG) if (z.y > z.x) swap(z.x, z.y);
// scale double useScale = 1.0; if (aux.i >= fractal->transformCommon.startIterationsS && aux.i < fractal->transformCommon.stopIterationsS) { useScale = aux.actualScaleA + fractal->transformCommon.scale2; z *= useScale; if (!fractal->analyticDE.enabledFalse) aux.DE = aux.DE * fabs(useScale) + 1.0; else aux.DE = aux.DE * fabs(useScale) * fractal->analyticDE.scale1 + fractal->analyticDE.offset1; if (fractal->transformCommon.functionEnabledFFalse && aux.i >= fractal->transformCommon.startIterationsK && aux.i < fractal->transformCommon.stopIterationsK) { // update actualScaleA for next iteration double vary = fractal->transformCommon.scaleVary0 * (fabs(aux.actualScaleA) - fractal->transformCommon.scaleC1); if (fractal->transformCommon.functionEnabledMFalse) aux.actualScaleA = -vary; else aux.actualScaleA = aux.actualScaleA - vary; } } if (aux.i >= fractal->transformCommon.startIterationsH && aux.i < fractal->transformCommon.stopIterationsH) z += fractal->transformCommon.offset111; // rotation if (aux.i >= fractal->transformCommon.startIterationsR && aux.i < fractal->transformCommon.stopIterationsR) { z = fractal->transformCommon.rotationMatrix.RotateVector(z); } if (fractal->analyticDE.enabledFalse) aux.DE = aux.DE * fractal->analyticDE.scale1 + fractal->analyticDE.offset0;} English: A twodimensional iterated function system. |
Date | |
Source | Own work |
Author | PantheraLeo1359531 |
CGI.
Licensing
editI, the copyright holder of this work, hereby publish it under the following license:
This file is licensed under the Creative Commons Attribution-Share Alike 4.0 International license.
- You are free:
- to share – to copy, distribute and transmit the work
- to remix – to adapt the work
- Under the following conditions:
- attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- share alike – If you remix, transform, or build upon the material, you must distribute your contributions under the same or compatible license as the original.
Annotations InfoField | This image is annotated: View the annotations at Commons |
3969
3977
3922
3914
8000
8000
Iteration 2
3977
5930
1961
1977
8000
8000
Iteration 3
3977
6906
984
1008
8000
8000
Iteration 4
3977
7398
492
516
8000
8000
Iteration 5
3984
7641
242
258
8000
8000
Iteration 6
3984
7766
117
141
8000
8000
Iteration 7
File history
Click on a date/time to view the file as it appeared at that time.
Date/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 16:53, 10 August 2019 | 8,000 × 8,000 (42.77 MB) | PantheraLeo1359531 (talk | contribs) | Downsized to 8K. | |
16:51, 10 August 2019 | 20,000 × 20,000 (208.52 MB) | PantheraLeo1359531 (talk | contribs) | User created page with UploadWizard |
You cannot overwrite this file.
File usage on Commons
The following page uses this file: