Compare commits

...

2 Commits

Author SHA1 Message Date
Ivan I. Ovchinnikov 1346972490 01a,03a buzzkill, Denis K. 2023-02-02 21:30:53 +03:00
Ivan I. Ovchinnikov 25654d937b wip 06 sample layouts svg 2023-02-01 16:59:25 +03:00
5 changed files with 613 additions and 5 deletions

View File

@ -8,7 +8,7 @@
\subsection*{В этом разделе}
Краткая история (причины возникновения); инструментарий, выбор версии; CLI; структура проекта; документирование; некоторые интересные способы сборки проектов.
В этом разделе происходит первое знакомство со внутреннем устройством языка Java и фреймворком разработки приложений с его использованием. Рассматривается примитивный инструментарий и базовые возможности платформы для разработки приложений на языке Java. Разбирается структура проекта, а также происходит ознакомление с базовым инструментарием для разработки на Java.
В этом разделе происходит первое знакомство с внутреннем устройством языка Java и фреймворком разработки приложений с его использованием. Рассматривается примитивный инструментарий и базовые возможности платформы для разработки приложений на языке Java. Разбирается структура проекта, а также происходит ознакомление с базовым инструментарием для разработки на Java.
\begin{itemize}
\item \nom{JDK}{(от англ. Java Development Kit) — комплект разработчика приложений на языке Java, включающий в себя компилятор, стандартные библиотеки классов, примеры, документацию, различные утилиты и исполнительную систему. В состав JDK не входит интегрированная среда разработки на Java, поэтому разработчик, использующий только JDK, вынужден использовать внешний текстовый редактор и компилировать свои программы, используя утилиты командной строки.}
\item \nom{JRE}{(от англ. Java Runtime Environment) — минимальная (без компилятора и других средств разработки) реализация виртуальной машины, необходимая для исполнения Java-приложений. Состоит из виртуальной машины Java Virtual Machine и библиотеки Java-классов.}
@ -38,7 +38,7 @@
\begin{itemize}
\item существовавшие на тот момент Pascal и C++ были слишком сложными;
\item Java быстрее C++;
\item Однажды написанная на Java программа работает везде.
\item однажды написанная на Java программа работает везде.
\end{itemize}
\end{enumerate}
@ -95,7 +95,7 @@
\end{enumerate}
\subsection{Из чего всё состоит (JDK, JRE, JVM и их друзья)}
TL;DR:
\textbf{TL;DR:}
\begin{itemize}
\item JDK = JRE + инструменты разработчика;
\item JRE = JVM + библиотеки классов;
@ -159,8 +159,8 @@ Java Development Kit является изрядно дополненным сп
& \multicolumn{1}{l|}{} & & \multicolumn{1}{l|}{JVM} & \multicolumn{7}{l|}{Java Hot Spot VM (JIT)} \\ \hline
\end{tabular}
\end{adjustbox}
\label{table:jdk-contents}
\caption{Общее представление состава JDK}
\label{table:jdk-contents}
\end{table}
\subsubsection{Задания для самопроверки}

View File

@ -331,7 +331,7 @@ public class Cat {
}
\end{lstlisting}
Помимо того, что статические поля -- это полезный инструмент создания общих свойств это ещё и опасный инструмент создания общих свойств. Так, например, мы знаем, что у котов четыре лапы, а не шесть и не восемь. Не создавая никакого Барсика будет понятно, что у кота -- четыре лапы. Это полезное поведение любого класса и его объектов.
Помимо того, что статические поля -- это полезный инструмент создания общих свойств, это ещё и опасный инструмент создания общих свойств. Так, например, мы знаем, что у котов четыре лапы, а не шесть и не восемь. Не создавая никакого Барсика будет понятно, что у кота -- четыре лапы. Это полезное поведение любого класса и его объектов.
\begin{lstlisting}[language=Java,style=JCodeStyle]
public class Cat {

View File

@ -0,0 +1,170 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg8"
inkscape:version="1.0.2 (e86c870879, 2021-01-15)"
sodipodi:docname="jd-01-border-layout.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6"
inkscape:cx="299.1778"
inkscape:cy="403.49254"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="true"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:window-width="1533"
inkscape:window-height="1205"
inkscape:window-x="45"
inkscape:window-y="72"
inkscape:window-maximized="0">
<inkscape:grid
type="xygrid"
id="grid10" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="62.027565"
y="87.257034"
id="text14"><tspan
sodipodi:role="line"
id="tspan12"
x="62.027565"
y="87.257034"
style="stroke-width:0.264583">TicTacToe</tspan></text>
<rect
style="fill:none;stroke:#000000;stroke-width:0.264999"
id="rect16"
width="42.333332"
height="47.625"
x="60.854164"
y="82.020836" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 60.854167,88.635417 H 103.1875"
id="path18" />
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="73.873528"
y="93.869209"
id="text28"><tspan
sodipodi:role="line"
id="tspan26"
x="73.873528"
y="93.869209"
style="stroke-width:0.264583">NORTH</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="72.760414"
y="128.32292"
id="text32"><tspan
sodipodi:role="line"
id="tspan30"
x="72.760414"
y="128.32292"
style="stroke-width:0.264583">SOUTH</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="-115.11546"
y="66.087959"
id="text36"
transform="rotate(-90)"><tspan
sodipodi:role="line"
id="tspan34"
x="-115.11546"
y="66.087959"
style="stroke-width:0.264583">WEST</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="102.98734"
y="-97.953712"
id="text40"
transform="rotate(90)"><tspan
sodipodi:role="line"
id="tspan38"
x="102.98734"
y="-97.953712"
style="stroke-width:0.264583">EAST</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="71.448868"
y="109.74421"
id="text44"><tspan
sodipodi:role="line"
id="tspan42"
x="71.448868"
y="109.74421"
style="stroke-width:0.264583">CENTER</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 60.854167,95.25 H 103.1875"
id="path46" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 60.854166,123.03125 H 103.1875"
id="path48" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 67.46875,95.25 -10e-7,27.78125"
id="path50"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 96.572917,95.25 -2e-6,27.78125"
id="path52"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 101.86458,83.343749 -3.968748,3.96875"
id="path54" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 97.895832,83.343749 3.968748,3.96875"
id="path56" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 96.572915,82.020832 v 6.614584"
id="path58" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.0 KiB

151
pics/jd-01-flow-layout.svg Normal file
View File

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg8"
inkscape:version="1.0.2 (e86c870879, 2021-01-15)"
sodipodi:docname="jd-01-flow-layout.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.959798"
inkscape:cx="265.09532"
inkscape:cy="431.54454"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="true"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:window-width="1533"
inkscape:window-height="1205"
inkscape:window-x="45"
inkscape:window-y="72"
inkscape:window-maximized="0">
<inkscape:grid
type="xygrid"
id="grid10" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="62.027565"
y="87.257034"
id="text14"><tspan
sodipodi:role="line"
id="tspan12"
x="62.027565"
y="87.257034"
style="stroke-width:0.264583">TicTacToe</tspan></text>
<rect
style="fill:none;stroke:#000000;stroke-width:0.264999"
id="rect16"
width="42.333332"
height="47.625"
x="60.854164"
y="82.020836" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 60.854167,88.635417 H 103.1875"
id="path18" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 101.86458,83.343749 -3.968748,3.96875"
id="path54" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 97.895832,83.343749 3.968748,3.96875"
id="path56" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 96.572915,82.020832 v 6.614584"
id="path58" />
<rect
style="fill:none;stroke:#000000;stroke-width:0.264999"
id="rect502"
width="13.229166"
height="3.96875"
x="62.177082"
y="89.958336" />
<rect
style="fill:none;stroke:#000000;stroke-width:0.264999"
id="rect504"
width="5.2916665"
height="13.229166"
x="76.729164"
y="89.958336" />
<rect
style="fill:none;stroke:#000000;stroke-width:0.264999"
id="rect506"
width="17.197916"
height="3.96875"
x="83.34375"
y="89.958336" />
<rect
style="fill:none;stroke:#000000;stroke-width:0.264999"
id="rect508"
width="19.84375"
height="3.96875"
x="62.177082"
y="104.51041" />
<rect
style="fill:none;stroke:#000000;stroke-width:0.264999"
id="rect510"
width="5.2916665"
height="3.96875"
x="83.34375"
y="104.51041" />
<rect
style="fill:none;stroke:#000000;stroke-width:0.264999"
id="rect512"
width="11.90625"
height="3.96875"
x="89.958336"
y="104.51041" />
<rect
style="fill:none;stroke:#000000;stroke-width:0.264999"
id="rect514"
width="5.2916665"
height="3.96875"
x="62.177082"
y="109.80208" />
<rect
style="fill:none;stroke:#000000;stroke-width:0.264999"
id="rect516"
width="5.2916665"
height="11.90625"
x="68.791664"
y="109.80208" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

287
pics/jd-01-grid-layout.svg Normal file
View File

@ -0,0 +1,287 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg8"
inkscape:version="1.0.2 (e86c870879, 2021-01-15)"
sodipodi:docname="jd-01-grid-layout.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.959798"
inkscape:cx="265.09532"
inkscape:cy="431.79708"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="true"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:window-width="1533"
inkscape:window-height="1205"
inkscape:window-x="45"
inkscape:window-y="72"
inkscape:window-maximized="0">
<inkscape:grid
type="xygrid"
id="grid10" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="62.027565"
y="87.257034"
id="text14"><tspan
sodipodi:role="line"
id="tspan12"
x="62.027565"
y="87.257034"
style="stroke-width:0.264583">TicTacToe</tspan></text>
<rect
style="fill:none;stroke:#000000;stroke-width:0.264999"
id="rect16"
width="42.333332"
height="47.625"
x="60.854164"
y="82.020836" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 60.854167,88.635417 H 103.1875"
id="path18" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 101.86458,83.343749 -3.968748,3.96875"
id="path54" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 97.895832,83.343749 3.968748,3.96875"
id="path56" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 96.572915,82.020832 v 6.614584"
id="path58" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 71.437499,88.635416 V 129.64583"
id="path380" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 82.020832,88.635416 V 129.64583"
id="path382" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 92.604166,88.635416 V 129.64583"
id="path384" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 60.854166,108.47917 H 103.1875"
id="path386" />
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="63.5"
y="93.927086"
id="text422"><tspan
sodipodi:role="line"
id="tspan420"
x="63.5"
y="93.927086"
style="stroke-width:0.264583">0,0</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="74.083336"
y="93.927086"
id="text426"><tspan
sodipodi:role="line"
id="tspan424"
x="74.083336"
y="93.927086"
style="stroke-width:0.264583">0,1</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="84.666664"
y="93.927086"
id="text430"><tspan
sodipodi:role="line"
id="tspan428"
x="84.666664"
y="93.927086"
style="stroke-width:0.264583">0,2</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="95.25"
y="93.927086"
id="text434"><tspan
sodipodi:role="line"
id="tspan432"
x="95.25"
y="93.927086"
style="stroke-width:0.264583">0,3</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="63.5"
y="115.09375"
id="text438"><tspan
sodipodi:role="line"
id="tspan436"
x="63.5"
y="115.09375"
style="stroke-width:0.264583">1,0</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="74.083336"
y="115.09375"
id="text442"><tspan
sodipodi:role="line"
id="tspan440"
x="74.083336"
y="115.09375"
style="stroke-width:0.264583">1,1</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="84.666664"
y="115.09375"
id="text446"><tspan
sodipodi:role="line"
id="tspan444"
x="84.666664"
y="115.09375"
style="stroke-width:0.264583">1,2</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="95.25"
y="115.09375"
id="text450"><tspan
sodipodi:role="line"
id="tspan448"
x="95.25"
y="115.09375"
style="stroke-width:0.264583">1,3</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="64.822914"
y="104.51041"
id="text454"><tspan
sodipodi:role="line"
id="tspan452"
x="64.822914"
y="104.51041"
style="stroke-width:0.264583">0</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="75.40625"
y="104.51041"
id="text458"><tspan
sodipodi:role="line"
id="tspan456"
x="75.40625"
y="104.51041"
style="stroke-width:0.264583">1</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="85.989586"
y="104.51041"
id="text462"><tspan
sodipodi:role="line"
id="tspan460"
x="85.989586"
y="104.51041"
style="stroke-width:0.264583">2</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="96.572914"
y="104.51041"
id="text466"><tspan
sodipodi:role="line"
id="tspan464"
x="96.572914"
y="104.51041"
style="stroke-width:0.264583">3</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="64.822914"
y="125.67708"
id="text470"><tspan
sodipodi:role="line"
id="tspan468"
x="64.822914"
y="125.67708"
style="stroke-width:0.264583">4</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="75.40625"
y="125.67708"
id="text474"><tspan
sodipodi:role="line"
id="tspan472"
x="75.40625"
y="125.67708"
style="stroke-width:0.264583">5</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="85.989586"
y="125.67708"
id="text478"><tspan
sodipodi:role="line"
id="tspan476"
x="85.989586"
y="125.67708"
style="stroke-width:0.264583">6</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="96.572914"
y="125.67708"
id="text482"><tspan
sodipodi:role="line"
id="tspan480"
x="96.572914"
y="125.67708"
style="stroke-width:0.264583">7</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB