Файл:Coloured Voronoi 2D.png

Coloured_Voronoi_2D.png(333 × 333 пкс, размер файла: 23 Кб, MIME-тип: image/png)

Этот файл из на Викискладе и может использоваться в других проектах. Информация с его страницы описания приведена ниже.

Перенесено с en.wikipedia на Викисклад участником Maksim.

Первоначальная страница описания находилась здесь. Все нижеперечисленные имена участников относятся к en.wikipedia.

Coloured 2D Voronoi diagram, made by me.

GNU head Разрешается копировать, распространять и/или изменять этот документ в соответствии с условиями GNU Free Documentation License версии 1.2 или более поздней, опубликованной Фондом свободного программного обеспечения, без неизменяемых разделов, без текстов, помещаемых на первой и последней обложке. Копия лицензии включена в раздел, озаглавленный GNU Free Documentation License.
w:ru:Creative Commons
атрибуция распространение на тех же условиях
Этот файл доступен по лицензии Creative Commons Attribution-Share Alike 3.0 Unported.
Вы можете свободно:
  • делиться произведением – копировать, распространять и передавать данное произведение
  • создавать производные – переделывать данное произведение
При соблюдении следующих условий:
  • атрибуция – Вы должны указать авторство, предоставить ссылку на лицензию и указать, внёс ли автор какие-либо изменения. Это можно сделать любым разумным способом, но не создавая впечатление, что лицензиат поддерживает вас или использование вами данного произведения.
  • распространение на тех же условиях – Если вы изменяете, преобразуете или создаёте иное произведение на основе данного, то обязаны использовать лицензию исходного произведения или лицензию, совместимую с исходной.
Этот признак лицензирования был добавлен к этому файлу как часть обновления лицензии GFDL.
Существует векторная версия этого изображения. Её следует использовать, если качество её не хуже, чем эта растровая версия.

File:Coloured Voronoi 2D.png → File:coloured Voronoi 2D.svg

Подробнее о векторной графике в статье «Перевод изображений в формат SVG».
Также доступна информация о поддержке формата SVG в MediaWiki.

На других языках
Alemannisch  Bahasa Indonesia  Bahasa Melayu  British English  català  čeština  dansk  Deutsch  eesti  English  español  Esperanto  euskara  français  Frysk  galego  hrvatski  Ido  italiano  lietuvių  magyar  Nederlands  norsk bokmål  norsk nynorsk  occitan  Plattdüütsch  polski  português  português do Brasil  română  Scots  sicilianu  slovenčina  slovenščina  suomi  svenska  Tiếng Việt  Türkçe  vèneto  Ελληνικά  беларуская (тарашкевіца)  български  македонски  нохчийн  русский  српски / srpski  татарча/tatarça  українська  ქართული  հայերեն  বাংলা  தமிழ்  മലയാളം  ไทย  한국어  日本語  简体中文  繁體中文  עברית  العربية  فارسی  +/−
Новое изображение

GNU head

Это произведение — свободное программное обеспечение; вы можете распространять и/или изменять его в соответствии с условиями GNU General Public License, опубликованной Free Software Foundation, версии 2 или более поздней. Данное произведение распространяется в надежде на то, что оно будет полезным, но без какой-либо гарантии; в том числе, без подразумеваемых гарантий товарной пригодности или пригодности для конкретных целей. Подробнее см. версию 2 и версию 3 условий GNU General Public License.


#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>

#define PI 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825
#define PI2 (PI*2)
#define SQ2 1.414213562373095048801688724209698078569671875376948073176679737990732478462
#define FI 1.618033988749894848204586834365638117720309179805762862135448622705260462818902449707207204

#define SX 666
#define SY 666
#define NPT 100
#define RSD 666
#define V3D 0
/*
#define SX 666
#define SY 666
#define NPT 1000
#define RSD 1923879
#define V3D 1
*/

#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;

  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("voronoi.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);
}

int ptx[NPT], pty[NPT], ptz[NPT];
double ptc[NPT][3];

void drawit() {
  int x, y, c, n, bn, dx, dy, dz;
  unsigned int m, p;
  seedr(RSD);
  for(n=0;n<NPT;++n) {
    ptx[n]=rndm(SX); pty[n]=rndm(SX); ptz[n]=(!!V3D)*(rndm(SX)-SX/2);
    for(c=0;c<3;++c) ptc[n][c]=rnd()/(double)~0u;
  }
  for(y=0;y<SY;++y) for(x=0;x<SY;++x) {
    for(n=0,m=~0;n<NPT;++n) {
      dx=x-ptx[n]; dy=y-pty[n]; dz=-ptz[n]; p=dx*dx+dy*dy+dz*dz;
      if(p<m) { m=p; bn=n; }
    }
    for(c=0;c<3;++c) gr[y][x][c]=ptc[bn][c];
  }
  if(!V3D)
    for(n=0;n<NPT;++n)
      for(y=-1+!pty[n];y<=1-(pty[n]==SY-1);++y)
        for(x=-1+!ptx[n];x<=1-(ptx[n]==SX-1);++x)
          for(c=0;c<3;++c)
            gr[pty[n]+y][ptx[n]+x][c]=0;
}

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);
}

ja:画像:Coloured Voronoi 2D.png

date/time username edit summary
18:11, 7 September 2005 en:User:Ja seed (+ja)
12:04, 25 January 2005 en:User:Voinic (char *p -> unsigned char *p;)
20:18, 14 October 2004 en:User:Cyp (+Image generator source code, made by me)
20:16, 14 October 2004 en:User:Cyp (Coloured 2D Voronoi diagram, made by me. {{GFDL}})

Исходный журнал загрузок

Legend: (cur) = this is the current file, (del) = delete this old version, (rev) = revert to this old version.

Click on date to download the file or see the image uploaded on that date.

  • (del) (cur) 20:16, 14 October 2004 . . en:User:Cyp Cyp ( en:User_talk:Cyp Talk) . . 333x333 (23852 bytes) (Coloured 2D Voronoi diagram, made by me. { { GFDL } })

Краткие подписи

Добавьте однострочное описание того, что собой представляет этот файл

Элементы, изображённые на этом файле

изображённый объект

image/png

333 пиксель

333 пиксель

История файла

Нажмите на дату/время, чтобы увидеть версию файла от того времени.

Дата/времяМиниатюраРазмерыУчастникПримечание
текущий22:49, 20 марта 2006Миниатюра для версии от 22:49, 20 марта 2006333 × 333 (23 Кб)MaksimLa bildo estas kopiita de wikipedia:en. La originala priskribo estas: Coloured 2D Voronoi diagram, made by me. {{GFDL}} //{{GPL}}<pre> #include <stdio.h> #include <math.h> #include <stdlib.h> #include <time.h> #define PI 3.1415926535897932384626433832

Следующие 2 страницы используют этот файл:

Метаданные