চিত্র:Feigenbaum Julia set.png
testwiki থেকে
পরিভ্রমণে চলুন
অনুসন্ধানে চলুন
এই প্রাকদর্শনের আকার: ৬০০ × ৬০০ পিক্সেল। অন্যান্য আকারসমূহ: ২৪০ × ২৪০ পিক্সেল | ৪৮০ × ৪৮০ পিক্সেল | ৭৬৮ × ৭৬৮ পিক্সেল | ১,০২৪ × ১,০২৪ পিক্সেল | ২,০০০ × ২,০০০ পিক্সেল।
মূল ফাইল (২,০০০ × ২,০০০ পিক্সেল, ফাইলের আকার: ৭৮৪ কিলোবাইট, এমআইএমই ধরন: image/png)
এই ফাইলটি উইকিমিডিয়া কমন্স থেকে আগত এবং অন্যান্য প্রকল্পে ব্যবহৃত হতে পারে। সেখানে থাকা ফাইলটির বিবরণ পাতার বিবরণ নিচে দেখানো হলো।
সারাংশ
| বিবরণFeigenbaum Julia set.png |
English: Feigenbaum Julia set. |
| তারিখ | |
| উৎস | নিজের কাজ |
| লেখক | Soul windsurfer |
লাইসেন্স প্রদান
আমি, এই কাজের স্বত্বাধিকারী, এতদ্দ্বারা আমি এই কাজকে নিম্ন বর্ণিত লাইসেন্সের আওতায় প্রকাশ করলাম:
এই ফাইলটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন-শেয়ার অ্যালাইক ৪.০ আন্তর্জাতিক লাইসেন্সের আওতায় লাইসেন্সকৃত।
- আপনি স্বাধীনভাবে:
- বণ্টন করতে পারেন – এ কাজটি অনুলিপি, বিতরণ এবং প্রেরণ করতে পারেন
- পুনঃমিশ্রণ করতে পারেন – কাজটি অভিযোজন করতে পারেন
- নিম্নের শর্তাবলীর ভিত্তিতে:
- স্বীকৃতিপ্রদান – আপনাকে অবশ্যই যথাযথ স্বীকৃতি প্রদান করতে হবে, লাইসেন্সের একটি লিঙ্ক সরবরাহ করতে হবে এবং কোনো পরিবর্তন হয়েছে কিনা তা নির্দেশ করতে হবে। আপনি যেকোনো যুক্তিসঙ্গত পদ্ধতিতে এটি করতে পারেন। কিন্তু এমন ভাবে নয়, যাতে প্রকাশ পায় যে লাইসেন্সধারী আপনাকে বা আপনার এই ব্যবহারের জন্য অনুমোদন দিয়েছে।
- একইভাবে বণ্টন – আপনি যদি কাজটি পুনঃমিশ্রণ, রুপান্তর, বা এর ওপর ভিত্তি করে নতুন সৃষ্টিকর্ম তৈরি করেন, তবে আপনাকে অবশ্যই আপনার অবদান একই লাইসেন্স বা একই রকমের লাইসেন্সের আওতায় বিতরণ করতে হবে।
C src code
#include <complex.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <omp.h> //OpenM
/*
fork of
mandelbrot-book how to write a book about the Mandelbrot set by Claude Heiland-Alle
https://code.mathr.co.uk/mandelbrot-book/blob/HEAD:/book/
https://stackoverflow.com/questions/77135883/why-do-my-functions-not-work-in-parallel
gcc c.c -lm -Wall -fopenmp
./a.out >ed.ppm // P6 = binary Portable PixMap see https://en.wikipedia.org/wiki/Netpbm#File_formats
convert ed.ppm -resize 25% ed.png
*/
const double pi = 3.141592653589793;
int q = 2 ; // degree of multibrot set
complex double f(complex double z, complex double c){ return z*z + c;} // multibrot z^q + c
complex double d(complex double z) {return 2*z; } // q*z^{q-1} derivative
double cnorm(double _Complex z) // https://stackoverflow.com/questions/6363247/what-is-a-complex-data-type-and-an-imaginary-data-type-in-c
{
return creal(z) * creal(z) + cimag(z) * cimag(z);
}
void hsv2rgb(double h, double s, double v, int *red, int *grn, int *blu) {
double i, f, p, q, t, r, g, b;
int ii;
if (s == 0.0) { r = g = b = v; } else {
h = 6 * (h - floor(h));
ii = i = floor(h);
f = h - i;
p = v * (1 - s);
q = v * (1 - (s * f));
t = v * (1 - (s * (1 - f)));
switch(ii) {
case 0: r = v; g = t; b = p; break;
case 1: r = q; g = v; b = p; break;
case 2: r = p; g = v; b = t; break;
case 3: r = p; g = q; b = v; break;
case 4: r = t; g = p; b = v; break;
default:r = v; g = p; b = q; break;
}
}
*red = fmin(fmax(255 * r + 0.5, 0), 255);
*grn = fmin(fmax(255 * g + 0.5, 0), 255);
*blu = fmin(fmax(255 * b + 0.5, 0), 255);
}
int main()
{
// integer size of the image
const int w = 8000 ;
const int h = 8000 ;
const int n = 1024;
const double r = 2.0; // plane radius
const double px = r / (h/2);
const double r2 = 25 * 25; // escape radius (ER) = r so r2 = ER*ER
unsigned char *img = malloc(3 * w * h);
double _Complex c = -1.4011551890;
#pragma omp parallel for schedule(dynamic)
for (int j = 0; j < h; ++j)
{
double y = (h/2 - (j + 0.5)) / (h/2) * r;
for (int i = 0; i < w; ++i)
{
double x = (i + 0.5 - w/2) / (h/2) * r; // for q=2 add -0.5
double _Complex z = x + I * y;
double _Complex dz = 1.0; // first derivative of zn with respect to z
int k;
for (k = 0; k < n; ++k)
{
//
dz = d(z)*dz ;
z = f(z,c);
if (cnorm(z) > r2)
break;
}
// color
double hue = 0, sat = 0, val = 1; // interior color = white
if (k < n)
{ // exterior and boundary color
double _Complex de = 2 * z * log(cabs(z)) / dz;
hue = fmod(1 + carg(de) / (2 * pi), 1); // ? slope of de
sat = 0.25;
val = tanh(cabs(de) / px );
}
// hsv to rgb conversion
int red, grn, blu;
hsv2rgb(hue, sat, val, &red, &grn, &blu);
// save rgb color to array
img[3*(j * w + i)+0] = red;
img[3*(j * w + i)+1] = grn;
img[3*(j * w + i)+2] = blu;
}
}
//
printf("P6\n%d %d\n255\n", w, h);
fwrite(img, 3 * w * h, 1, stdout);
free(img);
return 0;
}
bash source code
gcc c.c -lm -Wall -fopenmp
./a.out >ed.ppm
convert ed.ppm -resize 25% ed.png
rm ed.ppm
make
all:
chmod +x c.sh
./c.sh
Tu run the program simply
make
ক্যাপশন
এই ফাইলটি কী উপস্থাপন করছে তার এক লাইন ব্যাখ্যা যোগ করুন
Feigenbaum Julia set. f(z) = z^2 -1.4011551890
এই ফাইলে চিত্রিত আইটেমগুলি
যা চিত্রিত করে
Julia set ইংরেজি
কিছু মানের উইকিউপাত্ত আইটেম নেই
১৯ অক্টোবর 2023
image/png
ফাইলের ইতিহাস
যেকোনো তারিখ/সময়ে ক্লিক করে দেখুন ফাইলটি তখন কী অবস্থায় ছিল।
| তারিখ/সময় | সংক্ষেপচিত্র | মাত্রা | ব্যবহারকারী | মন্তব্য | |
|---|---|---|---|---|---|
| বর্তমান | ১৯:২৫, ১৯ অক্টোবর ২০২৩ | ২,০০০ × ২,০০০ (৭৮৪ কিলোবাইট) | wikimediacommons>Soul windsurfer | Uploaded own work with UploadWizard |
ফাইলের ব্যবহার
নিম্নলিখিত পাতাটি এই ফাইল ব্যবহার করে: