Я пытаюсь нарисовать кривые Безье из файла .svg, используя Matlab.
Я открыл .svg в текстовом редакторе. Вот одна из линий, которую я пытаюсь нарисовать: <path fill="none" stroke="#000000" stroke-miterlimit="10" d="M117.125,310.375c0-77.729,80.738-140.625,180.515-140.625"/>
Если я правильно понимаю, начальная точка (x, y) (117.125, 310.375), первая контрольная точка (0, -77.729), вторая контрольная точка (80.738, -140.625) и конец точка (180,515, -140,625). Однако это не кажется правильным, поскольку вывод, который я получаю, далек от реальной кривой.
Как это выглядит:
Как это должно выглядеть:
Начальная и конечная точки в порядке, но контрольные точки кажутся неправильными ... Matlab рисует правильные точки, я проверил их (ось может выглядеть немного странно, но это правильно)
Я использую код из Mathworks (https://blogs.mathworks.com/graphics/2014/10/13/bezier-curves/).. Ему нужны начальная точка pt1, контрольные точки pt2 и pt3 и конечная точка pt4.
Код работает, похоже, проблема в координатах точек.
Я попытался ввести координаты выше в онлайн-редакторе .svg (он поддерживает только целые числа, поэтому каждая координата здесь положительная, контрольные точки не должны «тянуть» кривую так сильно, но результат такой же, как и полученный с помощью MatLab): http://www.useragentman.com/tests/textpath/bezier-curve-construction-set.html#path=M%20297%2C%20169%20C%2058%2C%200%2C%2098%2C%2077%2C%2098%2C%20192&imageURL=http://www.useragentman.com/tests/textpath/images/grid.png
Вот весь файл, созданный с помощью Illustrator CS6:
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="595.28px" height="841.89px" viewBox="0 0 595.28 841.89" enable-background="new 0 0 595.28 841.89" xml:space="preserve">
<line fill="none" stroke="#000000" stroke-miterlimit="10" x1="116.083" y1="608.292" x2="117.125" y2="310.375"/>
<path fill="none" stroke="#000000" stroke-miterlimit="10" d="M117.125,310.375c0-77.729,80.738-140.625,180.515-140.625"/>
<path fill="none" stroke="#000000" stroke-miterlimit="10" d="M297.64,169.75c58.959,0,98.652,77.535,98.652,192.708"/>
<line fill="none" stroke="#000000" stroke-miterlimit="10" x1="396.292" y1="362.458" x2="387.958" y2="653.083"/>
</svg>
Я действительно надеюсь, что кто-то может помочь мне с этим. Я новичок в .svg