Log in to your account


E-mail:
Password:
Don't have an account? Sign up
Forgot your password? Send to e-mail
List 3
List 2
List 3
List 2
List 3
List 2





BOX 2 / ABD
Text:
Redaguj tekst ChatGTP
Pytanie do ChatGTP
Url Img:
Text:
Text:
Profil
E-mail:
Memorize

O aplikacji
Organizer OnlineStay up to date with your information, take notes, and consolidate your knowledge.
info@anizer.app
Fractal Explorer
self.onmessage = function(e) {
class ComplexNumber {
constructor(real, imag) {
this.real = real;
this.imag = imag;
}
get Conj() {
return -this.imag;
}
get ComplexNumberToString() {
return "(" + this.real + ", " + this.imag + ")";
}
get ComplexNumberToStringI() {
var s = this.real;
if (this.imag >= 0)
s += "+i";
else
s += "-i";
s += Math.abs(this.imag);
return s;
}
get ComplexNumberToStringPolar() {
return this.Abs + " * ( cos(" + this.Arg + ") + sin(" + this.Arg + "))";
}
get Sin() {
return Math.sqrt(this.Norm);
}
get Abs() {
return Math.sqrt(this.Norm);
}
get Arg() {
return Math.atan2(this.imag, this.real);
}
get Norm() {
return this.real * this.real + this.imag * this.imag;
}
get GetRadius() {
return Math.sqrt(this.Norm);
}
set SetRadius(Value) {
var phi = this.GetPhase;
this.real = Value * Math.cos(phi);
this.imag = Value * Math.sin(phi);
}
get GetPhase() {
var phi = Math.Atan2(this.imag, this.real);
if (phi < 0) phi += 2 * Math.PI;
return phi;
}
set SetPhase(Value) {
var r = this.GetRadius;
this.real = r * Math.cos(Value);
this.imag = r * Math.sin(Value);
}
}
function AddComplexNumber(Z1, Z2) {
var Z = new ComplexNumber(Z1.real + Z2.real, Z1.imag + Z2.imag);
return Z;
}
function MultiplyComplexNumber(Z1, Z2) {
var Z = new ComplexNumber(Z1.real * Z2.real - Z1.imag * Z2.imag, Z1.real * Z2.imag + Z1.imag * Z2.real);
return Z;
}
//var castBuffer = new Uint8ClampedArray(e.data.imageBuffer);
var buf = new ArrayBuffer(435600); // 330 x 330 x 4 = 435600
var buf8 = new Uint8ClampedArray(buf);
var castBuffer = new Uint32Array(buf);
var castBuffer = _formFractalExplorer_Calculations(castBuffer, e.data.RealMin, e.data.ImagMin, e.data.RealMax, e.data.ImagMax);
castBuffer = _formFractalExplorer_DrawBox(castBuffer);
function _formFractalExplorer_Calculations(castBuffer, RealMin, ImagMin, RealMax, ImagMax) {
var min = new ComplexNumber(RealMin, ImagMin);
var max = new ComplexNumber(RealMax, ImagMax);
for (var y = 0; y < 330; ++y) {
for (var x = 0; x < 330; ++x) {
var xx = x * (max.real - min.real) / 330;
var yy = y * (max.imag - min.imag) / 330;
var p1 = new ComplexNumber(xx, yy);
var c = new AddComplexNumber(min, p1);
var z = new ComplexNumber(0, 0);
for (var i = 0; i < 255; i++) {
var z = new MultiplyComplexNumber(z, z);
z = AddComplexNumber(z, c);
if (z.Norm >= 4) break;
}
if (i == 255) {
var red = 0;
var green = 0;
var blue = 0;
//var red = 0;
//var green = 0;
//var blue = 0;
//var red = 255;
//var green = 255;
//var blue = 255;
castBuffer[y * 330 + x] = red | // red
(green << 8) | // green
(blue << 16) | // blue
(255 << 24); // alpha
} else {
if (i <= 51) {
var red = 255 - i;
var green = 255 - i;
var blue = 255;
//var red = 255;
//var green = 255 - i;
//var blue = 255 - i;
//var red = 151;
//var green = 190;
//var blue = 255;
castBuffer[y * 330 + x] = red |
(green << 8) |
(blue << 16) |
(255 << 24); // 255 - i
} else {
if (i <= 102) {
var red = 255 - i;
var green = 255 - i;
var blue = 255;
//var red = 255;
//var green = 255 - i;
//var blue = 255 - i;
//var red = 8;
//var green = 159;
//var blue = 116;
castBuffer[y * 330 + x] = red |
(green << 8) |
(blue << 16) |
(255 << 24); // 255 - i
} else {
if (i <= 153) {
var red = 255 - i;
var green = 255 - i;
var blue = 255;
//var red = 255 - i;
//var green = 255 - i;
//var blue = 255;
//var red = 245;
//var green = 221;
//var blue = 98;
castBuffer[y * 330 + x] = red |
(green << 8) |
(blue << 16) |
(255 << 24); // 255 - i
} else {
if (i > 153) {
var red = 255 - i;
var green = 255 - i;
var blue = 255;
//var red = 255 - i;
//var green = 255;
//var blue = 255 - 1;
//var red = 198;
//var green = 120;
//var blue = 90;
castBuffer[y * 330 + x] = red |
(green << 8) |
(blue << 16) |
(255 << 24); // 255 - i
}
}
}
}
}
}
}
return castBuffer;
}
function _formFractalExplorer_DrawBox(castBuffer) {
for (var x = 130; x <= 150; ++x) {
castBuffer[130 * 330 + x] = 255 | // red
(0 << 8) | // green
(0 << 16) | // blue
(255 << 24); // alpha
castBuffer[150 * 330 + x] = 255 | // red
(0 << 8) | // green
(0 << 16) | // blue
(255 << 24); // alpha
}
for (var y = 130; y <= 150; ++y) {
castBuffer[y * 330 + 130] = 255 | // red
(0 << 8) | // green
(0 << 16) | // blue
(255 << 24); // alpha
castBuffer[y * 330 + 150] = 255 | // red
(0 << 8) | // green
(0 << 16) | // blue
(255 << 24); // alpha
}
return castBuffer;
}
self.postMessage(buf8);
};
- About App
- User's manual
- Technical approach - Framework Multi-component reaction
- Data export
Flashcard settings
{___captionSortAlphabetically___}
{___captionSortOrderWereAdded___}
{___captionSortOrderLp___}
{___captionNumberNewFlashcardsToLearn___}
{___NumberOfMostDifficultFlashcardsToLearn___}
{___NumberOfRandomFlashcardsToLearn___}
{___SettingColor_LANG___}
Lotto
8-latek i pokonywanie przeblolewania i zażynanie chciwości == stałe zarabianie, mało kogo stać na pozbycie się DOBROSTANU
Fx neuron network