2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4
 
 Re: Test --> LaTeX-графика
Сообщение03.07.2017, 20:37 
Заслуженный участник
Аватара пользователя


11/12/05
10057
Munin в сообщении #1231313 писал(а):
А мне сглаженный больше нравился :-) Есть в нём залихватскость и собственный вклад.

В первой больше характера. Хотя и сделано небрежно. Такое иногда бывает.
____________________________________________________________________

iifat в сообщении #1230757 писал(а):
С удовольствием бы видел и то, и другое в прикреплённой теме вот с этим пояснением
Dan B-Yallay в сообщении #1230753 писал(а): писал(а):
портирую её в Inkscape, обвожу линии и затем сохраняю в LaTeX

Ну мож, чуток поподробнее, если нетрудно. А то и так сойдёт. Просто как пример и стимул для дерзающих.

Ну вот, решил соединить полезное с приятным. Будем "рисовать" Erleker:

1 шаг: берём аватару, портируем в Инкскейп, обводим контуры и сохраняем в формате ЛаТеХ:

->
Вложение:
Erlek1.png
Erlek1.png [ 107.7 Кб | Просмотров: 0 ]

->
Вложение:
Erlek2.png
Erlek2.png [ 104.45 Кб | Просмотров: 0 ]



Перед сохранением желательно поместить рисунок-контур в нижний левый угол, чтобы координаты точек были относительно небольшими.

Получаем файл приблизительно следующего содержания:
код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
<div class="codetitle"><b>Код:</b></div><div class="codecontent">
%LaTeX with PSTricks extensions
%%Creator: inkscape 0.92.1
%%Please note this file requires PSTricks extensions
\psset{xunit=.5pt,yunit=.5pt,runit=.5pt}
\begin{pspicture}(793.7007874,1122.51968504)
{
\newrgbcolor{curcolor}{0 0 1}
\pscustom[linewidth=0.99999995,linecolor=curcolor]
{
\newpath
\moveto(159.5089852,294.52905827)
\curveto(143.92548283,291.1144063)(122.07415937,293.92372913)(108.88223244,288.73753701)
\curveto(101.91064819,285.9967748)(101.71326614,279.68439685)(97.29386457,272.02571339)
\lineto(104.57435339,262.75963465)
\curveto(122.91604913,264.37719685)(108.42142488,258.33297638)(101.92690394,254.15542677)
\lineto(93.98454425,236.94697323)
\curveto(96.85663748,229.48297323)(84.05406614,220.71273071)(77.43796535,212.45805354)
\curveto(49.84385764,258.41809134)(34.0280126,253.73159055)(14.5609852,264.74520945)
\curveto(15.79963465,260.37531969)(13.95959811,257.5447937)(25.15079433,248.19866457)
\curveto(32.87357102,243.74570079)(41.16854173,240.97160315)(46.33040504,229.00463622)
\curveto(53.82286866,204.88361575)(81.85713638,171.51877795)(40.37364661,169.43693858)
\curveto(18.99255307,132.00763465)(16.10770772,122.41515591)(13.89911433,113.84046614)
\lineto(31.76942362,117.14978268)
\curveto(36.54235843,150.41102362)(50.01657071,158.23774488)(66.18629669,158.18528504)
\curveto(80.22876094,150.35674961)(96.18781984,147.00030236)(107.88366614,133.69632756)
\curveto(122.84897008,126.28006299)(141.42536315,112.72493858)(148.25731276,119.13535748)
\curveto(145.7734337,105.16354016)(141.25162961,92.09744882)(146.27172283,74.79053858)
\curveto(169.0692737,64.06117795)(165.59804976,50.6376189)(154.21408252,36.40248189)
\lineto(124.43024504,19.85589921)
\curveto(129.4835452,17.70629291)(135.25062803,15.94098898)(151.56662551,19.85589921)
\lineto(173.40810331,45.66856063)
\curveto(185.39916472,59.07609449)(190.95563717,56.6896252)(193.26398362,46.3304315)
\curveto(181.79168126,30.0543874)(170.31940913,24.51775748)(158.84712189,18.53219528)
\lineto(174.4009285,16.21568504)
\curveto(191.88921827,27.17064567)(203.67824504,46.61007874)(217.7529411,63.53884724)
\curveto(208.19580094,67.0512)(205.91009386,72.38139213)(210.47243717,79.42359685)
\curveto(210.6489411,92.28952441)(212.74351748,98.02998425)(219.07664504,88.02780472)
\curveto(225.90598677,87.68651339)(232.70463874,87.4271622)(236.94696945,93.98456693)
\curveto(222.25246866,101.79341102)(220.5609789,122.60526614)(213.7817537,138.32938583)
\lineto(167.45134488,182.01233386)
\curveto(149.98888819,194.14650709)(156.38404157,206.28064252)(158.1852548,218.41481575)
\curveto(164.40449386,230.86851024)(172.91856756,245.28918425)(173.40810331,252.83168504)
\curveto(183.59005606,254.21782677)(188.93971276,257.21472756)(180.68858835,264.74520945)
\lineto(176.05556787,284.60110866)
\closepath
}
}
{
\newrgbcolor{curcolor}{0 0 0}
\pscustom[linewidth=0.99999995,linecolor=curcolor]
{
\newpath
\moveto(161.16364346,295.8528)
\curveto(174.17018835,303.0511748)(191.13996472,299.15255433)(208.48682457,294.19812283)
\curveto(227.52547654,285.78791811)(247.11903874,276.34714961)(254.1553852,290.22693543)
\curveto(250.77047811,264.54194646)(230.1433285,275.36987717)(212.45801197,279.96808819)
\curveto(193.86931276,289.73790236)(184.43969386,287.60084409)(174.40089071,286.25578583)
}
}
</div>


Шаг 2: Открываем этот файл в экселе (используем запятые и круглые скобки в качестве разделителей) и округляем все координаты до целых значений, потому, что с невменяемыми дробями работать трудно:

->
Вложение:
Erlek3.png
Erlek3.png [ 105.35 Кб | Просмотров: 0 ]


Кстати, поэкспериментируйте немного с размерами картинки. В данном случае цифры большие. поэтому я разделил всё на 3 и округлил.
(Хотя чем больше размер изображения, тем лучше получается передавать мелкие детали/изгибы. На примере Хемуля хорошо видно: если попробовать его уменьшить - выражение его глаз меняется и это сложно исправить в меньшем масштабе.

Так как форум не поддерживает PSTricks, в простом текстовом редакторе убираю шапку-оглавление, все специфичные комманды(\newpath, \newgrbcolor etc.) и делаю массовую замену команд
\moveto(...) ---> \put(....)
\curveto(.....) ----> \qbezier(...)
\lineto(...) ---> удаляю вообще, так как структура команды сильно отличается от аналога.

To be continued....


-- Пн июл 03, 2017 11:42:49 --

Кто-нибудь, напишите любое сообщение. Иначе при добавлении моего нового поста с картинкой, он идёт как продолжение текущего и происходит чехарда со всеми 4-мя вложениями: они почему-то меняются местами.

 Профиль  
                  
 
 Re: Test --> LaTeX-графика
Сообщение03.07.2017, 20:43 
Заслуженный участник
Аватара пользователя


26/01/14
4845
Угу.

 Профиль  
                  
 
 Re: Test --> LaTeX-графика
Сообщение03.07.2017, 20:46 
Заслуженный участник
Аватара пользователя


11/12/05
10057
Mikhail_K
Thanks!
_____________________________________________________________________


Вторая часть Марлезонского...:


Во время разбивки файла в Екселе, теряются запятые и скобки. Восстанавливаем их как раз в процессе массовой замены. Приблизительно вот так:

->
Вложение:
Erlek4.png
Erlek4.png [ 91.83 Кб | Просмотров: 0 ]


Табы(\t) заменяем на запятые, двойные табы (\t\t) - на скобки ")(" . В окончания строк добавляем закрывающие скобки : ")".
Разумеется, надо будет еще доработать немного вручную и поубирать дополнительно взявшиеся в пустых строках символы и добавить/убрать отсутствующие/лишние скобки. В конце этих мытарств получаем такой файл:
код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
<div class="codetitle"><b>Код:</b></div><div class="codecontent">
\documentclass[a4paper,10pt]{letter}
\usepackage[utf8]{inputenc}
\begin{document}

\begin{picture}(300,200)
 
\put(53,98){
\qbezier(48,97)(41,98)(36,96)
\qbezier(34,95)(34,93)(32,91)
\qbezier(41,88)(36,86)(34,85)
\qbezier(32,76)(28,74)(26,71)
\qbezier(17,86)(11,85)(5,88)
\qbezier(5,87)(5,86)(8,83)
\qbezier(11,81)(14,80)(15,76)
\qbezier(18,68)(27,57)(13,56)
\qbezier(6,44)(5,41)(5,38)
\qbezier(12,50)(17,53)(22,53)
\qbezier(27,50)(32,49)(36,45)
\qbezier(41,42)(47,38)(49,40)
\qbezier(49,35)(47,31)(49,25)
\qbezier(56,21)(55,17)(51,12)
\qbezier(43,6)(45,5)(51,7)
\qbezier(62,20)(64,19)(64,15)
\qbezier(61,10)(57,8)(53,6)
\qbezier(64,9)(68,16)(73,21)
\qbezier(69,22)(69,24)(70,26)
\qbezier(70,31)(71,33)(73,29)
\qbezier(75,29)(78,29)(79,31)
\qbezier(74,34)(74,41)(71,46)
\qbezier(50,65)(52,69)(53,73)
\qbezier(55,77)(58,82)(58,84)
\qbezier(61,85)(63,86)(60,88)
}

\put(54,99){
\qbezier(58,101)(64,100)(69,98)
\qbezier(76,95)(82,92)(85,97)
\qbezier(84,88)(77,92)(71,93)
\qbezier(65,97)(61,96)(58,95)
}
\put(59,94){
\qbezier(64,93)(68,94)(74,83)
\qbezier(79,78)(82,75)(84,76)
\qbezier(81,76)(83,71)(74,76)
\qbezier(69,83)(64,89)(60,90)
}


\end{picture}
\end{document}

</div>


Который можно сразу вставить в форум и получить такую картинку:
$$
\begin{picture}(300,200)
 
\put(53,98){
\qbezier(48,97)(41,98)(36,96)
\qbezier(34,95)(34,93)(32,91)
\qbezier(41,88)(36,86)(34,85)
\qbezier(32,76)(28,74)(26,71)
\qbezier(17,86)(11,85)(5,88)
\qbezier(5,87)(5,86)(8,83)
\qbezier(11,81)(14,80)(15,76)
\qbezier(18,68)(27,57)(13,56)
\qbezier(6,44)(5,41)(5,38)
\qbezier(12,50)(17,53)(22,53)
\qbezier(27,50)(32,49)(36,45)
\qbezier(41,42)(47,38)(49,40)
\qbezier(49,35)(47,31)(49,25)
\qbezier(56,21)(55,17)(51,12)
\qbezier(43,6)(45,5)(51,7)
\qbezier(62,20)(64,19)(64,15)
\qbezier(61,10)(57,8)(53,6)
\qbezier(64,9)(68,16)(73,21)
\qbezier(69,22)(69,24)(70,26)
\qbezier(70,31)(71,33)(73,29)
\qbezier(75,29)(78,29)(79,31)
\qbezier(74,34)(74,41)(71,46)
\qbezier(50,65)(52,69)(53,73)
\qbezier(55,77)(58,82)(58,84)
\qbezier(61,85)(63,86)(60,88)
}

\put(54,99){
\qbezier(58,101)(64,100)(69,98)
\qbezier(76,95)(82,92)(85,97)
\qbezier(84,88)(77,92)(71,93)
\qbezier(65,97)(61,96)(58,95)
}
\put(59,94){
\qbezier(64,93)(68,94)(74,83)
\qbezier(79,78)(82,75)(84,76)
\qbezier(81,76)(83,71)(74,76)
\qbezier(69,83)(64,89)(60,90)
}


\end{picture}
$$


В которой в принципе, можно уже угадать изображение оригинала. Дело за малым - играться с координатами кривых безье, соединять обрывки в единое и давать волю художественной фантазии -- тем, кому это интересно, разумеется.

А потом можно тащить сюда для сравнения - устроим конкурс желающих. Но предупрежу сразу: с непривычки убивается очень много времени. Компилить лучше локально на своём компе, а уже готовое постить тут. Я свою версию выложу завтра или послезавтра.

 Профиль  
                  
 
 Re: Test --> LaTeX-графика
Сообщение04.07.2017, 19:01 
Заслуженный участник
Аватара пользователя


11/12/05
10057
$$
\begin{picture}(300,200)
 
\put(53,98){
\qbezier(52,97)(41,97)(35,96)%
\qbezier(35,96)(32,93)(32,90)%
\qbezier(35,87)(33,89)(32,90)%
\qbezier(35,87)(37,89)(38,87)%
\qbezier(35,83)(39,84)(38,87)%
\qbezier(35,83)(34,82)(32,79)%
\qbezier(28,73)(34,76)(32,79)%
\qbezier(17,86)(25,80)(28,73)
\qbezier(17,86)(11,88)(5,87)%
\qbezier(5,87)(5,86)(10,82)%
\qbezier(10,82)(18,87)(21,67)%
\qbezier(21,67)(27,57)(13,56)%
\qbezier(13,56)(9,57)(3,42)%
\qbezier(9,44)(5,41)(3,42)%
\qbezier(9,44)(11,53)(17,50)%
\qbezier(31,52)(33,48)(17,50)
\qbezier(44,40)(40,45)(35,45)%
\qbezier(31,52)(37,48)(35,45)%
\qbezier(44,40)(47,41)(49,38)%
\qbezier(49,38)(42,29)(49,22)%
\qbezier(40,10)(52,17)(49,22)%
\qbezier(40,10)(43,8)(47,9)%
\qbezier(47,9)(54,14)(57,20)%
\qbezier(57,20)(59,24)(61,19)%
\qbezier(61,19)(61,13)(51,7)%
%\qbezier(59,20)(61,13)(51,7)%
\qbezier(51,7)(53,6)(58,7)%
\qbezier(58,7)(71,16)(70,21)%
\qbezier(70,21)(64,24)(70,28)%
\qbezier(70,28)(71,33)(74,30)%
\qbezier(74,30)(78,29)(82,32)%
\qbezier(82,32)(77,32)(73,43)%
\qbezier(63,53)(67,50)(73,43)%
\qbezier(63,53)(55,60)(55,65)%
\qbezier(55,65)(52,69)(55,77)%
\qbezier(55,77)(55,82)(60,83)%
\qbezier(60,83)(67,82)(60,88)%
\qbezier(52,97)(59,95)(60,88)%
}


\textcolor{blue}{
\put(54,99){
\qbezier(55,94)(64,100)(76,95)%
\qbezier(76,95)(90,92)(90,97)%
\qbezier(74,92)(92,87)(90,97)%
\qbezier(74,92)(63,95)(57,93)%
}
\put(59,94){
\qbezier(70,88)(64,98)(52,97)
\qbezier(70,88)(78,75)(84,76)
\qbezier(84,76)(80,71)(69,80)
\qbezier(69,80)(62,92)(53,95)
}
}

\put(97,190){
\circle{3}
}

\end{picture}

$$
Erleker

 Профиль  
                  
 
 Re: Test --> LaTeX-графика
Сообщение05.07.2017, 12:46 
Заморожен


16/09/15
946
Спасибо. :mrgreen:

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 50 ]  На страницу Пред.  1, 2, 3, 4

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group