2013-02-25 4 views
1

Есть ли функция или способ обрезать путь, который находится за пределами окна просмотра, а не просто скрывать его?Как отключить контент, который находится вне viewBox?

Я использую svg-edit, у которого есть viewbox, область холста. Все, что нарисовано вне этого холста, скрыто. Однако, когда вывод редактора собирается и вставляется в графический редактор, такой как Inkscape, появляется весь рисунок. Я хочу, чтобы чертеж, который находится за пределами окна просмотра, полностью обрезался с выхода редактора. Так, например, если у меня есть круг, который находится наполовину вне холста, тогда выход редактора будет половиной круга, а не весь круг, только половина которого скрыта.

Я хочу изменить геометрию самого объекта, а не просто скрыть его от вида.

Я делаю изменение SVG-редактирование: http://code.google.com/p/svg-edit/

+0

Просим пометить ваши вопросы, связанные с svg-edit с тегом 'svg-edit'. –

+0

как раз сделал. есть идеи? –

+0

Вопрос не достаточно ясен, чтобы я мог ответить. Каковы ограничения, каков ваш ожидаемый результат? Что вы пробовали? –

ответ

2

Один из способов сделать это, чтобы применить к clip-path корневому элементу SVG.

Если вы хотите, это может быть просто прямоугольная область, или другой более сложной формы, как показано в следующем примере:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<svg xmlns="http://www.w3.org/2000/svg" 
    xmlns:xlink="http://www.w3.org/1999/xlink"  
    viewBox="-100 -100 300 300" 
    clip-path="url(#clip)"> 
    <defs> 
    <clipPath id="clip"> 
     <rect width="100" height="100" rx="10"/> 
     <path d="M40 99l10 11 10 -11z"/> 
    </clipPath> 
    </defs> 

    <rect id="background" width="120" height="120" fill="slateblue"/> 
    <image xlink:href="images/man.png" width="100" height="110" 
     preserveAspectRatio="xMidYMax meet"/> 
</svg> 

Посмотреть его онлайн here.

В вашем случае вы, вероятно, захотите только один <rect> внутри элемента <clipPath>, который имеет те же размеры, что и viewBox.

+0

Пути клипов не изменяют геометрию самой фигуры. Мои извинения, если ответ был недостаточно ясен, но это то, что мне нужно. Я отредактировал его, чтобы отразить мои истинные намерения. –

+0

Не все в svg - это геометрия (например, фильтры), так что даже если вы сделали обрезку геометрии, которая не гарантирует, что контент остается внутри viewBox. –

Смежные вопросы