Файл: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 FDL версії 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 |
Використання файлу
Така сторінка використовує цей файл:
Глобальне використання файлу
Цей файл використовують такі інші вікі:
- Використання в eo.wikipedia.org
- Використання в es.wikipedia.org
- Використання в et.wikipedia.org
- Використання в gl.wikipedia.org
- Використання в it.wikipedia.org
- Використання в nl.wikipedia.org
- Використання в pl.wikipedia.org
- Використання в ru.wikipedia.org