চিত্র:GreatStellatedDodecahedron.jpg

পাতাটির বিষয়বস্তু অন্যান্য ভাষায় নেই।
এই ফাইলটি উইকিমিডিয়া কমন্স থেকে নেওয়া। মূল পাতাটি দেখতে ক্লিক করুন।
উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে

পূর্ণ রেজোলিউশন(৮৫৩ × ৭৯৪ পিক্সেল, ফাইলের আকার: ২৩১ কিলোবাইট, এমআইএমই ধরন: image/jpeg)

এই ফাইলটি উইকিমিডিয়া কমন্স থেকে নেওয়া। সেখানের বর্ণনা পাতার বিস্তারিত নিম্নে দেখানো হলো। (সম্পাদনা)
উইকিমিডিয়া কমন্স, মুক্ত লাইসেন্সযুক্ত মিডিয়ার একটি ভান্ডার। আপনি সাহায্য করতে পারেন

সারাংশ

বিবরণ
English: Great stellated dodecahedron, rendered with POVRay
 
এই চিত্রটি POV-Ray দিয়ে তৈরি করা হয়েছে।
উৎস নিজের কাজ
লেখক User Cyp

লাইসেন্স প্রদান

আমি, এই কাজের স্বত্বাধিকারী, এতদ্দ্বারা আমি এই কাজকে নিম্ন বর্ণিত লাইসেন্সের আওতায় প্রকাশ করলাম:
GNU head এই নথি অনুলিপি, বিতরণ এবং/বা পরিবর্তন করার অনুমতি ফ্রি সফটওয়্যার ফাউন্ডেশন কর্তৃক প্রকাশিত গনু ফ্রি ডকুমেন্টেশন লাইসেন্স, সংস্করণ ১.২ বা তার পরবর্তী সংস্করণের আওতায় অনুমতিপ্রাপ্ত; যে কোনো রকম অনুচ্ছেদ পরিবর্তন, সম্মুখ-প্রচ্ছদের লেখা, পিছন-প্রচ্ছদের লেখা পরিবর্তন করা ছাড়াই। এই লাইসেন্সের একটি অনুলিপি গনু ফ্রি ডকুমেন্টেশন লাইসেন্স শিরোনামের অনুচ্ছেদে অন্তর্ভুক্ত করা আছে।
w:bn:ক্রিয়েটিভ কমন্স
স্বীকৃতিপ্রদান একইভাবে বণ্টন
এই ফাইলটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন-শেয়ার অ্যালাইক ৩.০ আনপোর্টেড লাইসেন্সের আওতায় লাইসেন্সকৃত।
আপনি স্বাধীনভাবে:
  • বণ্টন করতে পারেন – এ কাজটি অনুলিপি, বিতরণ এবং প্রেরণ করতে পারেন
  • পুনঃমিশ্রণ করতে পারেন – কাজটি অভিযোজন করতে পারেন
নিম্নের শর্তাবলীর ভিত্তিতে:
  • স্বীকৃতিপ্রদান – আপনাকে অবশ্যই যথাযথ স্বীকৃতি প্রদান করতে হবে, লাইসেন্সের একটি লিঙ্ক সরবরাহ করতে হবে এবং কোনো পরিবর্তন হয়েছে কিনা তা নির্দেশ করতে হবে। আপনি যেকোনো যুক্তিসঙ্গত পদ্ধতিতে এটি করতে পারেন। কিন্তু এমন ভাবে নয়, যাতে প্রকাশ পায় যে লাইসেন্সধারী আপনাকে বা আপনার এই ব্যবহারের জন্য অনুমোদন দিয়েছে।
  • একইভাবে বণ্টন – আপনি যদি কাজটি পুনঃমিশ্রণ, রুপান্তর, বা এর ওপর ভিত্তি করে নতুন সৃষ্টিকর্ম তৈরি করেন, তবে আপনাকে অবশ্যই আপনার অবদান একই লাইসেন্স বা একই রকমের লাইসেন্সের আওতায় বিতরণ করতে হবে।
এই লাইসেন্স ট্যাগটি জিএফডিএল লাইসেন্স হালনাগাদের অংশ হিসেবে এই ফাইলে সংযুক্ত হয়েছে।
w:bn:ক্রিয়েটিভ কমন্স
স্বীকৃতিপ্রদান একইভাবে বণ্টন
এই ফাইলটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন-শেয়ার অ্যালাইক ২.৫ জেনেরিক, ২.০ জেনেরিক এবং ১.০ জেনেরিক লাইসেন্সের আওতায় লাইসেন্সকৃত।
আপনি স্বাধীনভাবে:
  • বণ্টন করতে পারেন – এ কাজটি অনুলিপি, বিতরণ এবং প্রেরণ করতে পারেন
  • পুনঃমিশ্রণ করতে পারেন – কাজটি অভিযোজন করতে পারেন
নিম্নের শর্তাবলীর ভিত্তিতে:
  • স্বীকৃতিপ্রদান – আপনাকে অবশ্যই যথাযথ স্বীকৃতি প্রদান করতে হবে, লাইসেন্সের একটি লিঙ্ক সরবরাহ করতে হবে এবং কোনো পরিবর্তন হয়েছে কিনা তা নির্দেশ করতে হবে। আপনি যেকোনো যুক্তিসঙ্গত পদ্ধতিতে এটি করতে পারেন। কিন্তু এমন ভাবে নয়, যাতে প্রকাশ পায় যে লাইসেন্সধারী আপনাকে বা আপনার এই ব্যবহারের জন্য অনুমোদন দিয়েছে।
  • একইভাবে বণ্টন – আপনি যদি কাজটি পুনঃমিশ্রণ, রুপান্তর, বা এর ওপর ভিত্তি করে নতুন সৃষ্টিকর্ম তৈরি করেন, তবে আপনাকে অবশ্যই আপনার অবদান একই লাইসেন্স বা একই রকমের লাইসেন্সের আওতায় বিতরণ করতে হবে।
আপনি আপনার পছন্দসই লাইসেন্স নির্বাচন করতে পারেন।

Source

//GPL
#include <stdio.h>
#include <math.h>

#include <vector>

using std::vector;

const char *theader = "//Picture   ***  Use flashiness=1 !!! ***\n//\n//   +w1024 +h1024 +a0.3 +am2\n//   +w512 +h512 +a0.3 +am2\n//\n//Movie   ***  Use flashiness=0.25 !!! ***\n//\n//   +kc +kff120 +w256 +h256 +a0.3 +am2\n//   +kc +kff60 +w256 +h256 +a0.3 +am2\n//\"Fast\" preview\n//   +w128 +h128\n#declare notwireframe=1;\n#declare withreflection=0;\n#declare flashiness=1; //Still pictures use 1, animated should probably be about 0.25.\n\n#declare rotation=seed(%d);\n\n#declare rot1=rand(rotation)*pi*2;\n#declare rot2=acos(1-2*rand(rotation));\n#declare rot3=(rand(rotation)+clock)*pi*2;\n#macro dorot()\n  rotate rot1*180/pi*y\n  rotate rot2*180/pi*x\n  rotate rot3*180/pi*y\n#end\n\n";

const char *tline = "object {\n  cylinder { <%lf,%lf,%lf>, <%lf,%lf,%lf>, .01 dorot() }\n  pigment { colour <.3,.3,.3> }\n  finish { ambient 0 diffuse 1 phong 1 }\n}\n\n";

const char *tvertex = "object {\n  sphere { <%lf,%lf,%lf>, .01 dorot() }\n  pigment { colour <.3,.3,.3> }\n  finish { ambient 0 diffuse 1 phong 1 }\n}\n\n";

const char *tstartmesh = "object {\n  mesh {\n";

const char *ttriangle = "    triangle {\n      <%lf,%lf,%lf>, <%lf,%lf,%lf>, <%lf,%lf,%lf>\n    }\n";

const char *tendmesh = "    //sphere { <0,0,0>, 1 }\n    //sphere { <0,0,0>, ld+.01 inverse }\n    dorot()\n  }\n  pigment { colour rgbt <.8,.8,.8,.4> }\n  finish { ambient 0 diffuse 1 phong flashiness #if(withreflection) reflection { .2 } #end }\n  //interior { ior 1.5 }\n  photons {\n    target on\n    refraction on\n    reflection on\n    collect on\n  }\n}\n\n";

const char *tfooter = "//  CCC Y Y PP\n//  C   Y Y P P\n//  C    Y  PP\n//  C    Y  P\n//  CCC  Y  P\n\n#local a=0;\n#while(a<11.0001)\n  light_source { <4*sin(a*pi*2/11), 5*cos(a*pi*6/11), -4*cos(a*pi*2/11)> colour (1+<sin(a*pi*2/11),sin(a*pi*2/11+pi*2/3),sin(a*pi*2/11+pi*4/3)>)*2/11 }\n  #local a=a+1;\n#end\n\nbackground { color <1,1,1> }\n\ncamera {\n  perspective\n  location <0,0,0>\n  direction <0,0,1>\n  right x/2\n  up y/2\n  sky <0,1,0>\n  location <0,0,-4.8>\n  look_at <0,0,0>\n}\n\nglobal_settings {\n  max_trace_level 40\n  photons {\n    count 200000\n    autostop 0\n  }\n}\n";

#define PHI ((1+sqrt(5))/2)
#define PI (3.14159265358979323846264338327)
#define SQ2 (sqrt(2))
#define SQ3 (sqrt(3))

bool eq(double a, double b)
{
    return a+0.00001>=b&&b+0.00001>=a;
}

bool eqt(double a1, double a2, double a3, double b1, double b2, double b3)
{
//printf("Tri: {%lf, %lf, %lf}, {%lf, %lf, %lf}\n", a1, a2, a3, b1, b2, b3);
    return eq(a1, b1)? eq(a2, b2)? eq(a3, b3):eq(a2, b3)&&eq(a3, b2):eq(a1, b2)? eq(a2, b3)? eq(a3, b1):eq(a2, b1)&&eq(a3, b3):eq(a1, b3)&&(eq(a2, b1)? eq(a3, b2):eq(a2, b3)&&eq(a3, b2));
}

class vec
{
public:
    double x, y, z;
    vec() : x(0), y(0), z(0) {}
    vec(double nx, double ny, double nz) : x(nx), y(ny), z(nz) {}
    vec operator + (vec o)
    {
        return vec(x+o.x, y+o.y, z+o.z);
    }
    vec operator - (vec o)
    {
        return vec(x-o.x, y-o.y, z-o.z);
    }
    double operator * (vec o)
    {
        return x*o.x+y*o.y+z*o.z;
    }
    vec operator * (double o)
    {
        return vec(x*o, y*o, z*o);
    }
    vec operator ^ (vec o)
    {
        return vec(y*o.z-z*o.y, z*o.x-x*o.z, x*o.y-y*o.x);
    }
    double norm()
    {
        return sqrt(x*x+y*y+z*z);
    }
};

class vec2
{
public:
    double x, y;
    vec2() {}
    vec2(double nx, double ny) : x(nx), y(ny) {}
    vec2 operator + (vec2 o)
    {
        return vec2(x+o.x, y+o.y);
    }
    vec2 operator - (vec2 o)
    {
        return vec2(x-o.x, y-o.y);
    }
    double operator * (vec2 o)
    {
        return x*o.x+y*o.y;
    }
    vec2 operator * (double o)
    {
        return vec2(x*o, y*o);
    }
    vec2 operator ~ ()
    {
        return vec2(y, -x);
    }
    double norm()
    {
        return sqrt(x*x+y*y);
    }
};

vector<vec> cyclicperm(vector<vec> v)
{
    vector<vec> r;
    vector<vec>::iterator i;
    for(i = v.begin(); i!=v.end(); ++i)
    {
        r.push_back(*i);
        r.push_back(vec(i->y, i->z, i->x));
        r.push_back(vec(i->z, i->x, i->y));
    }
    return r;
}

vector<vec> altperm(vector<vec> v)
{
    vector<vec> r;
    vector<vec>::iterator i;
    for(i = v.begin(); i!=v.end(); ++i)
    {
        r.push_back(*i);
        r.push_back(vec(i->x, i->z, i->y));
    }
    return r;
}

vector<vec> signperm(vector<vec> v)
{
    vector<vec> r;
    vector<vec>::iterator i;
    for( i = v.begin(); i!=v.end(); ++i )
    {
        int j;
        for(j = 0; j<8; ++j)
            if(((j&1)||i->x)&&((j&2)||i->y)&&((j&4)||i->z))
                r.push_back(vec(j&1? i->x:-i->x, j&2? i->y:-i->y, j&4? i->z:-i->z));
    }
    return r;
}

vector<vec> mvvec(double x, double y, double z)
{
    vector<vec> v;
    v.push_back(vec(x, y, z));
    return v;
}

vector<vec> mvvec(vec q)
{
    vector<vec> v;
    v.push_back(q);
    return v;
}

vector<vec> concat(const vector<vec> a, const vector<vec> b)
{
    vector<vec> r;
    r = a;
    r.insert(r.end(), b.begin(), b.end());
    return r;
}

void printvvec(FILE *f, vector<vec> v)
{
    vector<vec>::iterator i;
    for(i = v.begin(); i!=v.end(); ++i)
        fprintf(f, tvertex, i->x, i->y, i->z);
}

void printvveclines(FILE *f, vector<vec> v, double len)
{
    vector<vec>::iterator i, j;
    len *= len;
    for(i = v.begin(); i!=v.end(); ++i)
        for(j = i+1; j!=v.end(); ++j)
            if(eq((*i-*j)*(*i-*j), len))
                fprintf(f, tline, i->x, i->y, i->z, j->x, j->y, j->z);
}

void printvveclines(FILE *f, vector<vec> v)
{
    vector<vec>::iterator i;
    for(i = v.begin(); i!=v.end(); i += 2)
        fprintf(f, tline, i->x, i->y, i->z, (i+1)->x, (i+1)->y, (i+1)->z);
}

void printvvecdottedlines(FILE *f, vector<vec> v)
{
    vector<vec>::iterator i;
    int n, m;
    double s;
    for(i = v.begin(); i!=v.end(); i += 2)
//    for(i = v.begin(); i!=v.begin()+12; i += 2)
    {
        s = (*i-*(i+1)).norm();
        m = (int)(s/0.04+.5);
        s = 1./(double)m;
        for(n = 1; n<m; ++n)
        {
            vec c = *i+(*(i+1)-*i)*(s*n);
            fprintf(f, tvertex, c.x, c.y, c.z);
        }
    }
}

void printvvectriangles(FILE *f, vector<vec> v, double len1, double len2, double len3)
{
    vector<vec>::iterator i, j, k;
    len1 *= len1;
    len2 *= len2;
    len3 *= len3;
    for(i = v.begin(); i!=v.end(); ++i)
        for(j = i+1; j!=v.end(); ++j)
            for(k = j+1; k!=v.end(); ++k)
                if(eqt((*i-*j)*(*i-*j), (*j-*k)*(*j-*k), (*k-*i)*(*k-*i), len1, len2, len3))
                    fprintf(f, ttriangle, i->x, i->y, i->z, j->x, j->y, j->z, k->x, k->y, k->z);
}

void printvvectriangles(FILE *f, vector<vec> v)
{
    vector<vec>::iterator i;
    for(i = v.begin(); i!=v.end(); i += 3)
//i = v.begin();
        fprintf(f, ttriangle, i->x, i->y, i->z, (i+1)->x, (i+1)->y, (i+1)->z, (i+2)->x, (i+2)->y, (i+2)->z);
/*i += 3;
        fprintf(f, ttriangle, i->x, i->y, i->z, (i+1)->x, (i+1)->y, (i+1)->z, (i+2)->x, (i+2)->y, (i+2)->z);
i += 3;
        fprintf(f, ttriangle, i->x, i->y, i->z, (i+1)->x, (i+1)->y, (i+1)->z, (i+2)->x, (i+2)->y, (i+2)->z);
i += 3;
        fprintf(f, ttriangle, i->x, i->y, i->z, (i+1)->x, (i+1)->y, (i+1)->z, (i+2)->x, (i+2)->y, (i+2)->z);
i += 3;
        fprintf(f, ttriangle, i->x, i->y, i->z, (i+1)->x, (i+1)->y, (i+1)->z, (i+2)->x, (i+2)->y, (i+2)->z);
i += 3;
        fprintf(f, ttriangle, i->x, i->y, i->z, (i+1)->x, (i+1)->y, (i+1)->z, (i+2)->x, (i+2)->y, (i+2)->z);
*/}

void SmallStellatedDodecahedron()
{
    vector<vec> v;
    v = cyclicperm(signperm(mvvec(vec(0, PHI, 1)*(1/sqrt(PHI+2)))));

    FILE *f;
    f = fopen("SmallStellatedDodecahedron.pov", "wb");
    fprintf(f, theader, 22491);
    printvvec(f, v);
    printvveclines(f, v, 2*PHI*(1/sqrt(PHI+2)));
    fprintf(f, tstartmesh);
    v = concat(v, cyclicperm(signperm(mvvec(vec(0, 2-PHI, 1)*(1/sqrt(PHI+2))))));
    v = concat(v, signperm(mvvec(vec(PHI-1, PHI-1, PHI-1)*(1/sqrt(PHI+2)))));
    printvvectriangles(f, v, (2*PHI-2)*(1/sqrt(PHI+2)), (2*PHI-2)*(1/sqrt(PHI+2)), (4-2*PHI)*(1/sqrt(PHI+2)));
    fprintf(f, tendmesh);
    fprintf(f, tfooter);
    fclose(f);
}

void GreatStellatedDodecahedron()
{
    vector<vec> v;
    v = concat(signperm(mvvec(vec(1, 1, 1)*(1/SQ3))), cyclicperm(signperm(mvvec(vec(0, PHI, 1/PHI)*(1/SQ3)))));

    FILE *f;
    f = fopen("GreatStellatedDodecahedron.pov", "wb");
    fprintf(f, theader, 7409);//7412);
    printvvec(f, v);
    printvveclines(f, v, 2*PHI*(1/SQ3));
    fprintf(f, tstartmesh);
    v = concat(v, cyclicperm(signperm(mvvec(vec(0, 2-PHI, PHI-1)*(1/SQ3)))));
    printvvectriangles(f, v, (2*PHI-2)*(1/SQ3), (2*PHI-2)*(1/SQ3), (4-2*PHI)*(1/SQ3));
    fprintf(f, tendmesh);
    fprintf(f, tfooter);
    fclose(f);
}

void GreatDodecahedron()
{
    vector<vec> v;
    v = cyclicperm(signperm(mvvec(vec(0, PHI, 1)*(1/sqrt(PHI+2)))));

    FILE *f;
    f = fopen("GreatDodecahedron.pov", "wb");
    fprintf(f, theader, 11404);
    printvveclines(f, v, 2*(1/sqrt(PHI+2)));
    v = concat(v, concat(signperm(mvvec(vec(PHI-1, PHI-1, PHI-1)*(1/sqrt(PHI+2)))), cyclicperm(signperm(mvvec(vec(0, 2-PHI, 1)*(1/sqrt(PHI+2)))))));
    printvvec(f, v);
    fprintf(f, tstartmesh);
    printvvectriangles(f, v, (2*PHI-2)*(1/sqrt(PHI+2)), (2*PHI-2)*(1/sqrt(PHI+2)), (2)*(1/sqrt(PHI+2)));
    fprintf(f, tendmesh);
    fprintf(f, tfooter);
    fclose(f);
}

vector<vec> IcosaParse(const char *vs)
{
    vector<vec> v, p;
    v = cyclicperm(signperm(mvvec(vec(0, PHI, 1))));
vec av;
    vector<vec>::iterator i, j, k;
    int q;
    static const vec2 rats[9] = {vec2(1, 0), vec2(PHI-1, 2-PHI), vec2(2-PHI, PHI-1), vec2(0, 1), vec2(0, PHI-1), vec2(0, 2-PHI), vec2(0, 0), vec2(2-PHI, 0), vec2(PHI-1, 0)};

    for(i = v.begin(); i!=v.end(); ++i)
        for(j = v.begin(); j!=v.end(); ++j)
            for(k = v.begin(); k!=v.end(); ++k)
                if(eqt((*i-*j).norm(), (*j-*k).norm(), (*k-*i).norm(), 2, 2, 2)&&(*i^*j)**k>0)
                {
                    vec t3 = *i*PHI*PHI+*j*PHI*PHI-*k*PHI*PHI*PHI, t1 = *j*PHI*PHI+*k*PHI*PHI-*i*PHI*PHI*PHI, t2 = *k*PHI*PHI+*i*PHI*PHI-*j*PHI*PHI*PHI;
                    for(q = 0; vs[q]; )
                    {
                        if(vs[q]<48)
                            break;
                        if(vs[q+1]<48)
                        {
                            p = concat(p, mvvec(t3+(t1-t3)*rats[vs[q]-'0'].x+(t2-t3)*rats[vs[q]-'0'].y));
                            q += 2;
                            continue;
                        }
                        if(vs[q+4]<48)
                        {
                            vec2 a = rats[vs[q]-'0'], b = rats[vs[q+1]-'0'], c = rats[vs[q+2]-'0'], d = rats[vs[q+3]-'0'];
                            double idet = 1/((a-b).x*(d-c).y-(a-b).y*(d-c).x);
//fprintf(stderr, "%lf, %lf    %lf, %lf         %lf\n", (a-b).x, (d-c).x, (a-b).y, (d-c).y, idet);
                            vec2 e = vec2(vec2((d-c).y, (d-c).x*-1)*(d-b), vec2((a-b).y*-1, (a-b).x)*(d-b))*idet;
                            vec2 r = (a-b)*e.x+b;
//fprintf(stderr, "%lf, %lf    %lf, %lf         %lf\n", r.x, r.y, t1.x, t1.y, idet);
//fprintf(stderr, "(a-b)={%lf, %lf}, x=%lf, b={%lf, %lf}, e={%lf, %lf}\n(c-d)={%lf, %lf}, y=%lf, d={%lf, %lf}, e={%lf, %lf}\n",
//(a-b).x, (a-b).y, e.x, b.x, b.y, ((a-b)*e.x+b).x, ((a-b)*e.x+b).y,
//(c-d).x, (c-d).y, e.y, d.x, d.y, ((c-d)*e.y+d).x, ((c-d)*e.y+d).y
//);
//fprintf(stderr, "%lf %lf\n", r.x, r.y);
                            p = concat(p, mvvec(t3+(t1-t3)*r.x+(t2-t3)*r.y));
                            av = av+(t3+(t1-t3)*r.x+(t2-t3)*r.y);
                            //p = concat(p, mvvec(vec()));
                            q += 5;
                            continue;
                        }
                        break;
                    }
                }

//printf("%lf %lf %lf\n", av.x, av.y, av.z);
    double r = 0;
    for(i = p.begin(); i!=p.end(); ++i)
//i = p.begin();
        if(r<i->norm())
            r = i->norm();

    for(i = p.begin(); i!=p.end(); ++i)
        *i = *i*(1/r);

    return p;
}

void StellatedIcosahedron(const char *fn, int rs, const char *vs, const char *ls, const char *dls, const char *ts)
{
    vector<vec> v;

    FILE *f;
    f = fopen(fn, "wb");
    fprintf(f, theader, rs);
    printvvec(f, IcosaParse(vs));
    printvvecdottedlines(f, IcosaParse(dls));
    printvveclines(f, IcosaParse(ls));
    fprintf(f, tstartmesh);
    printvvectriangles(f, IcosaParse(ts));
    fprintf(f, tendmesh);
    fprintf(f, tfooter);
    fclose(f);
}

int main()
{
    SmallStellatedDodecahedron();
    GreatStellatedDodecahedron();
    GreatDodecahedron();
    StellatedIcosahedron("GreatIcosahedron.pov", 31234, "0 1 2 0417 1428 2538 ", "0 3 ", "0 0417 0417 1 1 1428 1428 2 2 2538 2538 3 ", "0 1 0417 1 2 1428 2 3 2538 ");
    StellatedIcosahedron("CompoundOfFiveTetrahedra.pov", 22113, "2 2514 1427 2715 1528 ", "2 5 ", "2 2 2514 1427 1427 2715 2715 1528 ", "2 2514 1427 2 2715 1528 ");
    return 0;
}

ক্যাপশন

এই ফাইল কি প্রতিনিধিত্ব করছে তার এক লাইন ব্যাখ্যা যোগ করুন

এই ফাইলে চিত্রিত আইটেমগুলি

যা চিত্রিত করে

ফাইলের ইতিহাস

যেকোনো তারিখ/সময়ে ক্লিক করে দেখুন ফাইলটি তখন কী অবস্থায় ছিল।

তারিখ/সময়সংক্ষেপচিত্রমাত্রাব্যবহারকারীমন্তব্য
বর্তমান২০:১৫, ১৯ ডিসেম্বর ২০০৫২০:১৫, ১৯ ডিসেম্বর ২০০৫-এর সংস্করণের সংক্ষেপচিত্র৮৫৩ × ৭৯৪ (২৩১ কিলোবাইট)CypReplacing missing pixels - cropped too small by one pixel on each edge.
২০:৩০, ১৭ ডিসেম্বর ২০০৫২০:৩০, ১৭ ডিসেম্বর ২০০৫-এর সংস্করণের সংক্ষেপচিত্র৮৫১ × ৭৯২ (২৩১ কিলোবাইট)CypGreat stellated dodecahedron, rendered with POVRay

নিচের পৃষ্ঠা(গুলো) থেকে এই ছবিতে সংযোগ আছে:

ফাইলের বৈশ্বিক ব্যবহার

নিচের অন্যান্য উইকিগুলো এই ফাইলটি ব্যবহার করে:

এই ফাইলের অন্যান্য বৈশ্বিক ব্যবহার দেখুন।

অধি-উপাত্ত