LINUX.ORG.RU

[svg] Посоветуйте алгоритм

 


0

0

Исходный файл:

<?xml version="1.0" standalone="no"?>
<svg height="297mm" width="210mm">
 <path stroke="red" stroke-width="1" d="M100 130L150 120L200 125L250 127L300 125L300 170L250 160L200 157L150 155L100 150Z"/>
 <path stroke="green" stroke-width="1" d="M100 150L150 155L200 157L250 160L300 170L300 200L100 200Z"/>
</svg>
Посоветуйте алгоритм, как сгладить верхнюю и среднюю горизонтальные линии. Думаю, что можно преобразовать их в кривые Безье (например, так получается, если в inkscape сделать выделенные узлы автоматически сглаженными), но немного не догоняю, как рассчитать координаты рычагов.

Вот что получается после inkscape:

  <svg><path
     stroke="red"
     stroke-width="1"
     d="m 100,130 c 0,0 33.02356,-9.16981 50,-10 16.7298,-0.81813 33.29102,3.83142 50,5 16.63935,1.16371 33.32001,2 50,2 16.67999,0 50,-2 50,-2 l 0,45 c 0,0 -33.14376,-7.8192 -50,-10 -16.55863,-2.1423 -33.32419,-2.16629 -50,-3 -16.65919,-0.83288 -33.36065,-0.83629 -50,-2 -16.70898,-1.16858 -50,-5 -50,-5 l 0,-20 z"
     id="path1" />
  <path
     stroke="green"
     stroke-width="1"
     d="m 100,150 c 0,0 33.29102,3.83142 50,5 16.63935,1.16371 33.34081,1.16712 50,2 16.67581,0.83371 33.44137,0.8577 50,3 16.85624,2.1808 50,10 50,10 l 0,30 -200,0 0,-50 z"
     id="path2" />
</svg>

★★★★★

Да, нагуглил libspiro, но мне бы чего попроще - sed'ом заменить несколько циферок и буковок )

fluorite ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.