Перейти на страницу файла на Викискладе

Файл:Go position, life and death, 1.png

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Исходный файл(1969 × 1729 пкс, размер файла: 121 Кб, MIME-тип: image/png)

Существует векторная версия этого изображения. Её следует использовать, если качество её не хуже, чем эта растровая версия.

File:Go position, life and death, 1.png → File:Go position, life and death, 1.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  українська  ქართული  հայերեն  বাংলা  தமிழ்  മലയാളം  ไทย  한국어  日本語  简体中文  繁體中文  עברית  العربية  فارسی  +/−
Новое изображение

An example of life and death. I'm quite proud of the stones in this image. The shading is done according to the Lambertian diffuse lighting model. Notice the shadows! Now that the code is figured out, it's trivial to set up other Go configurations Just ask!

To make this image, save the following Metapost program as go.mp:

scale=0.6in;   % scale is the diameter of a stone
linethickness = scale/25;
pickup pencircle scaled linethickness;
num = 150;  % Levels of shading in each stone.

color shadow;
shadow = (0.44,0.36,0.18);

lx = -0.35;
ly = 0.35;
lz = sqrt(1-lx*lx-ly*ly);
  % light source direction vector.
  % note that lz = cos(ltip).
ltheta = angle(lx, ly);
ltip = angle(lz, lx++ly);
  % the angle at which the light source is tipped.

path ellipse;
ellipse := fullcircle scaled scale xscaled lz;


% First, we draw the black stone, and a special version for the bottom row:
picture blackstone;
blackstone = currentpicture;
picture blackstoneb;
blackstoneb = currentpicture;

addto blackstone contour fullcircle scaled scale
  shifted (0.05*scale*dir(ltheta+180)) 
  withcolor shadow;
addto blackstoneb contour fullcircle scaled scale
  shifted (0.05*scale*dir(ltheta+180)) 
  withcolor shadow;
addto blackstone doublepath (0.55*scale,0)--(0,0)--(0,-0.55*scale)
  withpen currentpen;
addto blackstoneb doublepath (0.55*scale,0)--(0,0)
  withpen currentpen;
addto blackstone contour fullcircle scaled scale;
addto blackstoneb contour fullcircle scaled scale;

for ratio = 1 step -1/num until 0 :
  path ourellipse;
  ourellipse = ellipse scaled ratio
    shifted (scale*(1+-+ratio)*sind(ltip)/2, 0)
    rotated ltheta;

  addto blackstone contour ourellipse withcolor (0.7*(1+-+ratio)**2*white);
  addto blackstoneb contour ourellipse withcolor (0.7*(1+-+ratio)**2*white);
endfor;


% Next, we draw a white stone, and a special version for the bottom row:
picture whitestone;
whitestone = currentpicture;
picture whitestoneb;
whitestoneb = currentpicture;

basewhite = 0.7;
addto whitestone contour fullcircle scaled scale
  shifted (0.05*scale*dir(ltheta+180)) 
  withcolor shadow;
addto whitestoneb contour fullcircle scaled scale
  shifted (0.05*scale*dir(ltheta+180)) 
  withcolor shadow;
addto whitestone doublepath (0.55*scale,0)--(0,0)--(0,-0.55*scale)
   withpen currentpen;
addto whitestoneb doublepath (0.55*scale,0)--(0,0) withpen currentpen;
addto whitestone contour fullcircle scaled scale
   withcolor (basewhite*white);
addto whitestoneb contour fullcircle scaled scale
   withcolor (basewhite*white);

for ratio = 1 step -1/num until 0 :
  path ourellipse;
  ourellipse = ellipse scaled ratio
    shifted (scale*(1+-+ratio)*sind(ltip)/2, 0)
    rotated ltheta;

  addto whitestone contour ourellipse withcolor
    (basewhite + (1-basewhite)*((1+-+ratio)**4))*white;
  addto whitestoneb contour ourellipse withcolor
    (basewhite + (1-basewhite)*((1+-+ratio)**4))*white;
endfor;


boardwidth = 8;
boardheight = 7;
  % the lower left 8-by-7 positions of a go board.

def drawboard = 
  pickup pencircle scaled linethickness;
  fill unitsquare xscaled ((boardwidth+0.2)*scale)
    yscaled ((boardheight+0.2)*scale) shifted (-0.6*scale, -0.6scale)
    withcolor (0.86,0.70,0.36);
  for i = 0 upto boardwidth - 1 :
    draw (scale*i,0) -- (scale*i, (boardheight-0.4)*scale);
  endfor;
  for j = 0 upto boardheight - 1 :
    draw (0,scale*j) -- ((boardwidth-0.4)*scale,scale*j);
  endfor;
enddef;

def wh(expr x, y) =
  if y = 0 :
    draw whitestoneb shifted (x*scale, y*scale);
  else :
    draw whitestone shifted (x*scale, y*scale);
  fi;
enddef;
def bl(expr x, y) =
  if y = 0 :
    draw blackstoneb shifted (x*scale, y*scale);
  else :
    draw blackstone shifted (x*scale, y*scale);
  fi;
enddef;
def lab(expr num, x, y, color) =
  draw thelabel(num, (0, 0)) scaled (0.75*scale/10pt)
    shifted (x*scale, y*scale) withcolor color;
enddef;


beginfig(1);
  drawboard;

  wh(2,5);wh(1,4);wh(1,3);bl(2,3);bl(3,3);bl(4,3);bl(1,2);wh(2,2);
  wh(3,2);bl(5,2);bl(6,2);bl(1,1);wh(4,1);

  lab("1", 1, 1, white);
endfig;

beginfig(2);
  drawboard;

  wh(2,5);wh(1,4);wh(1,3);bl(2,3);bl(3,3);bl(4,3);bl(1,2);wh(2,2);
  wh(3,2);bl(5,2);bl(6,2);bl(1,1);bl(2,1);wh(3,1);wh(4,1);wh(3,0);

  lab("2", 3, 0, black);
  lab("3", 2, 1, white);
  lab("4", 3, 1, black);
endfig;

beginfig(3);
  drawboard;

  wh(2,5);wh(1,4);wh(1,3);bl(2,3);bl(3,3);bl(4,3);wh(0,2);bl(1,2);
  wh(2,2);wh(3,2);bl(4,2);bl(5,2);bl(6,2);wh(0,1);bl(1,1);bl(2,1);
  wh(3,1);wh(4,1);bl(5,1);bl(1,0);wh(3,0);

  lab("5", 4, 2, white);
  lab("6", 0, 2, black);
  lab("7", 1, 0, white);
  lab("8", 0, 1, black);
  lab("9", 5, 1, white);
endfig;  

beginfig(4);
  drawboard;

  wh(2,5);wh(1,4);wh(0,3);wh(1,3);bl(2,3);bl(3,3);bl(4,3);wh(0,2);
  bl(1,2);wh(2,2);wh(3,2);bl(4,2);bl(5,2);bl(6,2);wh(0,1);bl(1,1);
  bl(2,1);wh(3,1);wh(4,1);bl(5,1);wh(0,0);bl(1,0);wh(3,0);bl(4,0);
  bl(5,0);

  lab("10", 0, 3, black);
  lab("11", 5, 0, white);
  lab("12", 0, 0, black);
  lab("13", 4, 0, white);
endfig;  
end;

Compile with mpost, producing go.1, go.2, go.3, and go.4. Save the following as go.tex:

\documentclass[10pt]{article}
 \usepackage{graphicx}
 \pagestyle{empty}
\begin{document}
 \includegraphics{\fig}
\end{document}

To get the font for the numbers, you have to digest Metapost's output through TeX. The following Bash command accomplishes that:

for i in 1 2 3 4; do latex "\def\fig{go.$i} \input go"; dvips go.dvi -o go.$i.ps; done

You now have go.1.ps through go.4.ps. Open in Gimp, resolution 400, "try bounding box", weak anti-aliasing. Crop at (826, 698), width = 1969, height = 1729. Save as PNG.

Я, владелец авторских прав на это произведение, добровольно публикую его на условиях следующих лицензий:
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.
w:ru:Creative Commons
атрибуция распространение на тех же условиях
Этот файл доступен по лицензии Creative Commons Attribution-Share Alike 2.0 Generic
Вы можете свободно:
  • делиться произведением – копировать, распространять и передавать данное произведение
  • создавать производные – переделывать данное произведение
При соблюдении следующих условий:
  • атрибуция – Вы должны указать авторство, предоставить ссылку на лицензию и указать, внёс ли автор какие-либо изменения. Это можно сделать любым разумным способом, но не создавая впечатление, что лицензиат поддерживает вас или использование вами данного произведения.
  • распространение на тех же условиях – Если вы изменяете, преобразуете или создаёте иное произведение на основе данного, то обязаны использовать лицензию исходного произведения или лицензию, совместимую с исходной.
Вы можете выбрать любую из этих лицензий.

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

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

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

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

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

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

Дата/времяМиниатюраРазмерыУчастникПримечание
текущий04:04, 5 января 2005Миниатюра для версии от 04:04, 5 января 20051969 × 1729 (121 Кб)Grendelkhanoptipng -o7 for 5% reduction in filesize
01:52, 5 января 2005Миниатюра для версии от 01:52, 5 января 20051969 × 1729 (128 Кб)Dbenbenngo position 1, second try
01:37, 5 января 2005Миниатюра для версии от 01:37, 5 января 20051921 × 1681 (123 Кб)DbenbennGo position

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

Глобальное использование файла

Данный файл используется в следующих вики:

  • Использование в eo.wikipedia.org
  • Использование в es.wikipedia.org
  • Использование в et.wikipedia.org
  • Использование в gl.wikipedia.org
  • Использование в it.wikipedia.org
  • Использование в nl.wikipedia.org
  • Использование в pl.wikipedia.org
  • Использование в uk.wikibooks.org