Fail:Pseudo Kleinian 29072019 002 8K HQ.jpg
Algfail (8000 × 4500 pikslit, faili suurus: 31,62 MB, MIME tüüp: image/jpeg)
See fail ja sellest kastist allapoole jääv kirjeldus pärinevad kesksest failivaramust Wikimedia Commons. | Faili lehekülg Commonsis |
Lühikirjeldus
KirjeldusPseudo Kleinian 29072019 002 8K HQ.jpg |
Deutsch: Bild im Detail eines Pseudo Kleinian-Fraktals mittels genauem Raytracing.
Formel: void PseudoKleinianIteration(CVector4 &z, const sFractal *fractal, sExtendedAux &aux) { // sphere inversion slot#1 iter == 0 added v2.17 if (fractal->transformCommon.sphereInversionEnabledFalse) { if (aux.i < 1) { double rr = 1.0; z += fractal->transformCommon.offset000; rr = z.Dot(z); z *= fractal->transformCommon.maxR2d1 / rr; z += fractal->transformCommon.additionConstantA000 - fractal->transformCommon.offset000; // double r = sqrt(rr); aux.DE = aux.DE * (fractal->transformCommon.maxR2d1 / rr) + fractal->analyticDE.offset0; } } CVector4 gap = fractal->transformCommon.constantMultiplier000; double t; double dot1; // prism shape if (fractal->transformCommon.functionEnabledPFalse && aux.i >= fractal->transformCommon.startIterationsP && aux.i < fractal->transformCommon.stopIterationsP1) { z.y = fabs(z.y); z.z = fabs(z.z); dot1 = (z.x * -SQRT_3_4 + z.y * 0.5) * fractal->transformCommon.scale; t = max(0.0, dot1); z.x -= t * -SQRT_3; z.y = fabs(z.y - t); if (z.y > z.z) swap(z.y, z.z); z -= gap * CVector4(SQRT_3_4, 1.5, 1.5, 0.0); // z was pos, now some points neg (ie neg shift) if (z.z > z.x) swap(z.z, z.x); if (z.x > 0.0) { z.y = max(0.0, z.y); z.z = max(0.0, z.z); } } // box fold abs() tglad fold added v2.17 if (fractal->transformCommon.functionEnabledByFalse && aux.i >= fractal->transformCommon.startIterationsE && aux.i < fractal->transformCommon.stopIterationsE) { z.x = fabs(z.x + fractal->transformCommon.additionConstant111.x) - fabs(z.x - fractal->transformCommon.additionConstant111.x) - z.x; z.y = fabs(z.y + fractal->transformCommon.additionConstant111.y) - fabs(z.y - fractal->transformCommon.additionConstant111.y) - z.y; if (fractal->transformCommon.functionEnabledBy) { z.z = fabs(z.z + fractal->transformCommon.additionConstant111.z) - fabs(z.z - fractal->transformCommon.additionConstant111.z) - z.z; } } // box fold if (fractal->transformCommon.functionEnabledBxFalse && aux.i >= fractal->transformCommon.startIterationsA && aux.i < fractal->transformCommon.stopIterationsA) { if (fabs(z.x) > fractal->mandelbox.foldingLimit) { z.x = sign(z.x) * fractal->mandelbox.foldingValue - z.x; aux.color += fractal->mandelbox.color.factor.x; } if (fabs(z.y) > fractal->mandelbox.foldingLimit) { z.y = sign(z.y) * fractal->mandelbox.foldingValue - z.y; aux.color += fractal->mandelbox.color.factor.y; } double zLimit = fractal->mandelbox.foldingLimit * fractal->transformCommon.scale1; double zValue = fractal->mandelbox.foldingValue * fractal->transformCommon.scale1; if (fabs(z.z) > zLimit) { z.z = sign(z.z) * zValue - z.z; aux.color += fractal->mandelbox.color.factor.z; } } // PseudoKleinian CVector4 cSize = fractal->transformCommon.additionConstant0777; CVector4 tempZ = z; // correct c++ version. if (z.x > cSize.x) tempZ.x = cSize.x; if (z.x < -cSize.x) tempZ.x = -cSize.x; if (z.y > cSize.y) tempZ.y = cSize.y; if (z.y < -cSize.y) tempZ.y = -cSize.y; if (z.z > cSize.z) tempZ.z = cSize.z; if (z.z < -cSize.z) tempZ.z = -cSize.z; z = tempZ * 2.0 - z; double k = max(fractal->transformCommon.minR05 / z.Dot(z), 1.0); z *= k; aux.DE *= k + fractal->analyticDE.tweak005; // rotation if (fractal->transformCommon.functionEnabledRFalse && aux.i >= fractal->transformCommon.startIterationsR && aux.i < fractal->transformCommon.stopIterationsR) z = fractal->transformCommon.rotationMatrix.RotateVector(z); // offset z += fractal->transformCommon.additionConstant000;aux.pseudoKleinianDE = fractal->analyticDE.scale1; English: Detailed image of a Pseudo Kleinian fractal with exact raytracing.
}Formula: void PseudoKleinianIteration(CVector4 &z, const sFractal *fractal, sExtendedAux &aux) { // sphere inversion slot#1 iter == 0 added v2.17 if (fractal->transformCommon.sphereInversionEnabledFalse) { if (aux.i < 1) { double rr = 1.0; z += fractal->transformCommon.offset000; rr = z.Dot(z); z *= fractal->transformCommon.maxR2d1 / rr; z += fractal->transformCommon.additionConstantA000 - fractal->transformCommon.offset000; // double r = sqrt(rr); aux.DE = aux.DE * (fractal->transformCommon.maxR2d1 / rr) + fractal->analyticDE.offset0; } } CVector4 gap = fractal->transformCommon.constantMultiplier000; double t; double dot1; // prism shape if (fractal->transformCommon.functionEnabledPFalse && aux.i >= fractal->transformCommon.startIterationsP && aux.i < fractal->transformCommon.stopIterationsP1) { z.y = fabs(z.y); z.z = fabs(z.z); dot1 = (z.x * -SQRT_3_4 + z.y * 0.5) * fractal->transformCommon.scale; t = max(0.0, dot1); z.x -= t * -SQRT_3; z.y = fabs(z.y - t); if (z.y > z.z) swap(z.y, z.z); z -= gap * CVector4(SQRT_3_4, 1.5, 1.5, 0.0); // z was pos, now some points neg (ie neg shift) if (z.z > z.x) swap(z.z, z.x); if (z.x > 0.0) { z.y = max(0.0, z.y); z.z = max(0.0, z.z); } } // box fold abs() tglad fold added v2.17 if (fractal->transformCommon.functionEnabledByFalse && aux.i >= fractal->transformCommon.startIterationsE && aux.i < fractal->transformCommon.stopIterationsE) { z.x = fabs(z.x + fractal->transformCommon.additionConstant111.x) - fabs(z.x - fractal->transformCommon.additionConstant111.x) - z.x; z.y = fabs(z.y + fractal->transformCommon.additionConstant111.y) - fabs(z.y - fractal->transformCommon.additionConstant111.y) - z.y; if (fractal->transformCommon.functionEnabledBy) { z.z = fabs(z.z + fractal->transformCommon.additionConstant111.z) - fabs(z.z - fractal->transformCommon.additionConstant111.z) - z.z; } } // box fold if (fractal->transformCommon.functionEnabledBxFalse && aux.i >= fractal->transformCommon.startIterationsA && aux.i < fractal->transformCommon.stopIterationsA) { if (fabs(z.x) > fractal->mandelbox.foldingLimit) { z.x = sign(z.x) * fractal->mandelbox.foldingValue - z.x; aux.color += fractal->mandelbox.color.factor.x; } if (fabs(z.y) > fractal->mandelbox.foldingLimit) { z.y = sign(z.y) * fractal->mandelbox.foldingValue - z.y; aux.color += fractal->mandelbox.color.factor.y; } double zLimit = fractal->mandelbox.foldingLimit * fractal->transformCommon.scale1; double zValue = fractal->mandelbox.foldingValue * fractal->transformCommon.scale1; if (fabs(z.z) > zLimit) { z.z = sign(z.z) * zValue - z.z; aux.color += fractal->mandelbox.color.factor.z; } } // PseudoKleinian CVector4 cSize = fractal->transformCommon.additionConstant0777; CVector4 tempZ = z; // correct c++ version. if (z.x > cSize.x) tempZ.x = cSize.x; if (z.x < -cSize.x) tempZ.x = -cSize.x; if (z.y > cSize.y) tempZ.y = cSize.y; if (z.y < -cSize.y) tempZ.y = -cSize.y; if (z.z > cSize.z) tempZ.z = cSize.z; if (z.z < -cSize.z) tempZ.z = -cSize.z; z = tempZ * 2.0 - z; double k = max(fractal->transformCommon.minR05 / z.Dot(z), 1.0); z *= k; aux.DE *= k + fractal->analyticDE.tweak005; // rotation if (fractal->transformCommon.functionEnabledRFalse && aux.i >= fractal->transformCommon.startIterationsR && aux.i < fractal->transformCommon.stopIterationsR) z = fractal->transformCommon.rotationMatrix.RotateVector(z); // offset z += fractal->transformCommon.additionConstant000;aux.pseudoKleinianDE = fractal->analyticDE.scale1; |
Kuupäev | |
Allikas | Üleslaadija oma töö |
Autor | PantheraLeo1359531 |
CGI.
Litsents
- Tohid:
- jagada – teost kopeerida, levitada ja edastada
- kohandada – valmistada muudetud teoseid
- Järgmistel tingimustel:
- omistamine – Pead materjali sobival viisil autorile omistama, tooma ära litsentsi lingi ja märkima ära, kas on tehtud muudatusi. Sobib, kui teed seda mõistlikul viisil, kuid seejuures ei tohi jääda muljet, et litsentsiandja tõstab esile sind või seda, et sina materjali kasutad.
- sarnaselt jagamine – Kui töötled, kujundad ümber või arendad materjali edasi, siis pead oma töö levitamiseks kasutama sama litsentsi, mille all on algupärand, või ühilduvat litsentsi.
العربية ∙ جازايرية ∙ беларуская ∙ беларуская (тарашкевіца) ∙ български ∙ বাংলা ∙ català ∙ čeština ∙ Cymraeg ∙ Deutsch ∙ Schweizer Hochdeutsch ∙ Zazaki ∙ Ελληνικά ∙ English ∙ Esperanto ∙ español ∙ eesti ∙ euskara ∙ فارسی ∙ suomi ∙ français ∙ galego ∙ עברית ∙ हिन्दी ∙ hrvatski ∙ magyar ∙ հայերեն ∙ Bahasa Indonesia ∙ italiano ∙ 日本語 ∙ Jawa ∙ ქართული ∙ 한국어 ∙ kurdî ∙ Lëtzebuergesch ∙ lietuvių ∙ македонски ∙ മലയാളം ∙ मराठी ∙ Bahasa Melayu ∙ Nederlands ∙ Norfuk / Pitkern ∙ polski ∙ português ∙ português do Brasil ∙ rumantsch ∙ română ∙ русский ∙ sicilianu ∙ slovenčina ∙ slovenščina ∙ shqip ∙ српски / srpski ∙ svenska ∙ தமிழ் ∙ తెలుగు ∙ ไทย ∙ Tagalog ∙ Türkçe ∙ toki pona ∙ українська ∙ vèneto ∙ Tiếng Việt ∙ 中文 ∙ 中文(简体) ∙ 中文(繁體) ∙ +/− |
Selles failis kujutatud üksused
kujutab
Kleinian group inglise
Teatud väärtus ilma Vikiandmete üksuseta
source of file inglise
original creation by uploader inglise
original creation by uploader inglise
29. juuli 2019
media type inglise
image/jpeg
Faili ajalugu
Klõpsa kuupäeva ja kellaaega, et näha sel ajahetkel kasutusel olnud failiversiooni.
Kuupäev/kellaaeg | Pisipilt | Mõõtmed | Kasutaja | Kommentaar | |
---|---|---|---|---|---|
viimane | 30. juuli 2019, kell 10:56 | 8000 × 4500 (31,62 MB) | PantheraLeo1359531 | User created page with UploadWizard |
Faili kasutus
Seda faili kasutab järgmine lehekülg:
Globaalne failikasutus
Järgmised muud vikid kasutavad seda faili:
- Faili kasutus vikis en.wikibooks.org
Metaandmed
See fail sisaldab lisateavet, mille on tõenäoliselt lisanud digikaamera või skanner.
Kui faili on rakendustarkvaraga töödeldud, võib osa andmeid olla muudetud või täielikult eemaldatud.
JPEG-faili kommentaar |
|
---|