ملف:Newtroot 1 0 0 0 0 m1.png
من testwiki
اذهب إلى التنقل
اذهب إلى البحث
حجم هذه المعاينة: ٦٠٠ × ٦٠٠ بكسل. الأبعاد الأخرى: ٢٤٠ × ٢٤٠ بكسل | ٤٨٠ × ٤٨٠ بكسل | ٧٦٨ × ٧٦٨ بكسل | ١٬٠٢٤ × ١٬٠٢٤ بكسل | ١٬٦٥٥ × ١٬٦٥٥ بكسل.
الملف الأصلي (١٬٦٥٥ × ١٬٦٥٥ بكسل حجم الملف: ١٬٠٠٣ كيلوبايت، نوع MIME: image/png)
هذا الملف من ويكيميديا كومنز ويمكن استخدامه بواسطة المشاريع الأخرى. الوصف على صفحة وصف الملف هناك معروض بالأسفل.
نُقِلت من en.wikipedia إلى كُومُنز بواسطة Maksim.
صفحة الوصف الأصلية كانت هنا، تشير جميع أسماء المستخدمين التالية إلى en.wikipedia.
//
|
هذا العمل هو برمجيات مجانية ، ويمكنك إعادة توزيعه و / أو تعديله تحت شروط الباحث جنو للوثائق الحرة' والتي نشرتها منظمة مؤسسة البرمجيات الحرة ؛ إما الإصدار 2 من الرخصة ، أو أي إصدار لاحق. تم نشر هذا العمل على أمل أن يكون مفيدا ، ولكن دون أي ضمان ؛ حتى دون ضمان ضمني 'رواج 'أو 'الملاءمة لغرض معين. الإصدار 2 و الإصدار 3 من رخصة جنو للوثائق الحرة لمزيد من التفاصيل.http://www.gnu.org/licenses/gpl.htmlGPLGNU General Public Licensetruetrue |
c src code
#include <stdio.h> #include <stdlib.h> #include <time.h> #define PI 3.1415926535897932 #define TAU (PI * 2) #define SQ2 1.4142135623730950 #define SQ3 1.7320508075688772 #define PHI 1.6180339887498948 #define SX 1111 #define SY 1111 //////////////////MAKE PRETTY PATTERNS HERE. DPOLY must be POLY differentiated. #define POLY(z) z *z *z *z *z + (-1) #define DPOLY(z) 5 * z *z *z *z // #define POLY(z) z*z*z*z*z*z*z*z*z + (-1) // #define DPOLY(z) 9*z*z*z*z*z*z*z*z // #define POLY(z) z*z*z*z*z + (-3i) * z*z*z + (-5-2i) * z*z + (3) * z + (1) // #define DPOLY(z) 5*z*z*z*z + (-3i) * 3*z*z + (-5-2i) * 2*z + (3) * 1 // #define POLY(z) z*z*z*z*z*z + (2-4i) * z*z*z*z*z + (-1) * z + (2+4i) // #define DPOLY(z) 6*z*z*z*z*z + (2-4i) * 5*z*z*z*z + (-1) * 1 // #define POLY(z) z*z*z*z*z + (-1) * z + (-1) // #define DPOLY(z) 5*z*z*z*z + (-1) * 1 // #define POLY(z) z*z*z*z*z + (-1) - (cos(__imag__ z)+1i*sin(__imag__ z))*exp(__real__ z) // #define DPOLY(z) 5*z*z*z*z - (cos(__imag__z)+1i*sin(__imag__ z))*exp(__real__ z) #define RSD 1923879 #define BPL ((SX * 3 + 3) & ~3) void seedr(unsigned int); unsigned int rnd(); unsigned int rndm(unsigned int); unsigned char bhdr[54] = {0x42, 0x4D, 0x36, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; unsigned char po[BPL]; double gr[SY][SX][3]; void drawit(); int main(int a, char **b) { FILE *o; int x, y, c; double t; unsigned char *p; // fixed error due to conversion from unsigned char to char srand(time(0)); drawit(); p = bhdr + 2; *p++ = x = 54 + BPL * SY; *p++ = x >>= 8; *p++ = x >>= 8; *p = x >>= 8; p = bhdr + 18; *p++ = x = SX; *p++ = x >>= 8; *p++ = x >>= 8; *p++ = x >>= 8; *p++ = x = SY; *p++ = x >>= 8; *p++ = x >>= 8; *p = x >>= 8; if (!(o = fopen("newtroot.bmp", "wb"))) { fclose(o); printf("Couldn't open output file.\n"); return (0); } fwrite(bhdr, 54, 1, o); for (x = SX * 3; x < BPL; ++x) po[x] = 0; for (y = SY - 1; ~y; --y) { for (x = 0, p = po; x < SX; ++x) for (c = 2; ~c; --c) *p++ = (t = gr[y][x][c]) <= 0 ? 0 : (t >= 1 ? 255 : t * 255); fwrite(po, BPL, 1, o); } fclose(o); return (0); } void drawit() { int x, y, c, n, bn, dx, dy, dz; unsigned int m, p; _Complex double z, w; double f, s; seedr(RSD); for (y = 0; y < SY; ++y) for (x = 0; x < SX; ++x) { z = (x * (10. / SX) - 5) - (y * (10. / SY) - 5) * 1i; w = POLY(z); for (f = s = 1; f > .01 && (__real__(w * ~w)) > .01; f *= .95, s = -s, w = POLY(z)) z = z - w / (DPOLY(z)); z = z - w / (DPOLY(z)); for (n = 0; n < 10; ++n) z = z - (POLY(z)) / (DPOLY(z)); z = f * (z * z) / (z * ~z); gr[y][x][0] = .5 * f /*+.02*s*f*/ + .24 * (__real__(z)) - (SQ3 * .24) * (__imag__(z)); gr[y][x][1] = .5 * f /*+.02*s*f*/ + .24 * (__real__(z)) + (SQ3 * .24) * (__imag__(z)); gr[y][x][2] = .5 * f /*+.02*s*f*/ - .48 * (__real__(z)); } } unsigned int rseeda[624]; int rseedu; void seedr(unsigned int s) { int n; rseedu = 624; rseeda[0] = s; for (n = 1; n < 624; ++n) rseeda[n] = s *= 69069u; } #define TEMPBLAH(x, y, z) \ { \ v = (rseeda[x] & 0x80000000) | (rseeda[y] & 0x7fffffff); \ rseeda[x] = rseeda[z] ^ (v >> 1) ^ (0x9908b0df & (0 - (v & 1))); \ } void gennewr() { int n; unsigned int v; for (n = 0; n < 227; ++n) TEMPBLAH(n, n + 1, n + 397); for (; n < 623; ++n) TEMPBLAH(n, n + 1, n - 227); TEMPBLAH(623, 0, 396); rseedu = 0; } #undef TEMPBLAH unsigned int rnd() { if (rseedu >= 624) gennewr(); unsigned int v = rseeda[rseedu++]; v ^= v >> 11; v ^= (v << 7) & 0x9d2c5680; v ^= (v << 15) & 0xefc60000; v ^= v >> 18; return (v); } unsigned int rndm(unsigned int m) { unsigned int v, c = (0u - m) / m; while ((v = rnd()) / m > c) ; return (v % m); }
| date/time | username | edit summary |
|---|---|---|
| 13:01, 12 November 2005 | en:User:129.177.30.18 | (Fix bug: change x over [0, SY] to x over [0, SY]. Would only be a problem if SX != SY.) |
| 05:07, 14 November 2004 | en:User:Cyp | (+Source) |
| 05:06, 14 November 2004 | en:User:Cyp | (Finding roots with "Newton's method") |
سجلُّ الرَّفع الأصيل
الشروحات
أضف شرحاً من سطر واحد لما يُمثِّله هذا الملف
العناصر المصورة في هذا الملف
يُصوِّر
image/png
تاريخ الملف
اضغط على زمن/تاريخ لرؤية الملف كما بدا في هذا الزمن.
| زمن/تاريخ | صورة مصغرة | الأبعاد | مستخدم | تعليق | |
|---|---|---|---|---|---|
| حالي | ١٠:٤٢، ٢٢ يونيو ٢٠٠٧ | ١٬٦٥٥ × ١٬٦٥٥ (١٬٠٠٣ كيلوبايت) | wikimediacommons>LutzL | Recomputed with lower resolution, such that it does not break the thumbnail generation and thus existing uses of this image. Licence, source, ... remains unchanged |
استخدام الملف
لا توجد صفحات تستخدم هذا الملف.