Файл:Go position, life and death, 1.png
Исходный файл (1969 × 1729 пкс, размер файла: 121 КБ, MIME-тип: image/png)
Этот файл находится на Викискладе. Сведения о нём показаны ниже.
Викисклад — централизованное хранилище для свободных файлов, используемых в проектах Викимедиа.
Сообщить об ошибке с файлом |
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 Free Documentation License версии 1.2 или более поздней, опубликованной Фондом свободного программного обеспечения, без неизменяемых разделов, без текстов, помещаемых на первой и последней обложке. Копия лицензии включена в раздел, озаглавленный GNU Free Documentation License.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
Этот файл доступен по лицензии Creative Commons Attribution-Share Alike 3.0 Unported. | ||
| ||
Этот признак лицензирования был добавлен к этому файлу как часть обновления лицензии GFDL.http://creativecommons.org/licenses/by-sa/3.0/CC BY-SA 3.0Creative Commons Attribution-Share Alike 3.0truetrue |
- Вы можете свободно:
- делиться произведением – копировать, распространять и передавать данное произведение
- создавать производные – переделывать данное произведение
- При соблюдении следующих условий:
- атрибуция – Вы должны указать авторство, предоставить ссылку на лицензию и указать, внёс ли автор какие-либо изменения. Это можно сделать любым разумным способом, но не создавая впечатление, что лицензиат поддерживает вас или использование вами данного произведения.
- распространение на тех же условиях – Если вы изменяете, преобразуете или создаёте иное произведение на основе данного, то обязаны использовать лицензию исходного произведения или лицензию, совместимую с исходной.
Элементы, изображённые на этом файле
изображённый объект
История файла
Нажмите на дату/время, чтобы посмотреть файл, который был загружен в тот момент.
Дата/время | Миниатюра | Размеры | Участник | Примечание | |
---|---|---|---|---|---|
текущий | 04:04, 5 января 2005 | 1969 × 1729 (121 КБ) | Grendelkhan | optipng -o7 for 5% reduction in filesize | |
01:52, 5 января 2005 | 1969 × 1729 (128 КБ) | Dbenbenn | go position 1, second try | ||
01:37, 5 января 2005 | 1921 × 1681 (123 КБ) | Dbenbenn | Go 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