Мой вопрос
Учитывая растровое изображение, где я знаю, сколько пикселей (px) соответствует сантиметру (см), и путь SVG, где я определяю единицы пространства пользователя в миллиметрах в окне просмотра, которое зависит от ширины браузера: Как я могу масштабировать изображение, чтобы оно всегда имело такое же соотношение пикселей на сантиметр, как и путь SVG?
Фон
У меня есть растровые изображения, которые представляют текстуры ткани, которые я хочу сопоставить с фигурами svg, которые представляют часть предмета одежды. Я хочу наложить ткань поверх фигуры, и для этого потребовались реалистичные пропорции фигуры и изображения, которые должны совпадать. Все это делается динамически, что означает, что я хочу решить эту проблему для общего случая, а не только для одной конкретной комбинации изображения и формы.
Пример
Я адаптировал мой общий и общий код для этой конкретной JS Fiddle, чтобы проиллюстрировать проблему и показать мой прогресс, а также то, где я застрял:
http://jsfiddle.net/nx3vrz94/16/
<svg id="svgView-1" style="width:90vw" viewBox="0 0 635 334" >
<path fill-opacity="1" fill="url(#fabric1001)" d="M0 0 L635 0 L334 290 Z " id="1"></path>
<!--
Image: 1440x1080
horizontally:
2,5 cm = 51 pixel
= 20,4 pixel per cm
-->
<defs>
<pattern id="fabric1001"
patternContentUnits="objectBoundingBox"
viewBox="0 0 1 1"
preserveAspectRatio="xMidYMid slice"
width="100%" height="100%">
<image xlink:href="https://cdn.shopify.com/s/files/1/0081/1076/8185/products/3.jpg?v=1540031315"
x="0" y="0"
width="1"
height="1"
preserveAspectRatio="xMidYMid slice" />
</pattern>
</defs>
</svg>
Пока мне удалось добавить изображение в качестве шаблона, а затем заполнить форму ссылкой на URL. Что я не понимаю, так это как я могу сказать SVG, что 20,4 пикселя в этом изображении соответствуют 10 единицам пространства пользователя?