Как я мог написать этот файл SVG более компактным? - PullRequest
0 голосов
/ 17 декабря 2010

Можно ли написать этот код более компактным? У меня есть стол, который я хотел бы повернуть. Тем не менее, я использую четыре разных объекта: TableWithCharisW..S

<?xml version="1.0"?>
<svg width="704" height="702" xmlns="http://www.w3.org/2000/svg">
    <defs>
        <!-- objects -->
        <rect id="Chair" width="40" height="40" />
        <rect id="Table" width="130" height="65" />
        <g id="TableWithChairs">
            <use xlink:href="#Table" />
            <use xlink:href="#Chair" x="12.5" y="70" />
            <use xlink:href="#Chair" x="77.5" y="70" />
        </g>
        <use id="TableWithChairsW" xlink:href="#TableWithChairs" transform="rotate(90) translate(0, -65)" />
        <use id="TableWithChairsN" xlink:href="#TableWithChairs" transform="rotate(180) translate(-130, -65)" />
        <use id="TableWithChairsE" xlink:href="#TableWithChairs" transform="rotate(-90) translate(-130, 0)" />
        <use id="TableWithChairsS" xlink:href="#TableWithChairs" />
    </defs> 

    <!-- room background -->
    <rect x="0" y="0" width="704" height="702" fill="white"/>

    <!-- tables vertical -->
    <use xlink:href="#TableWithChairsE" x="497" y="117" />
    <use xlink:href="#TableWithChairsE" x="497" y="247" />
    <use xlink:href="#TableWithChairsW" x="142" y="117" />
    <use xlink:href="#TableWithChairsW" x="142" y="247" />

    <!-- tables horizontal -->
    <use xlink:href="#TableWithChairsN" x="207" y="117" />
    <use xlink:href="#TableWithChairsN" x="337" y="117" />
    <use xlink:href="#TableWithChairsS" x="207" y="312" />
    <use xlink:href="#TableWithChairsS" x="337" y="312" />
</svg>

1 Ответ

1 голос
/ 05 февраля 2011

Было бы более компактно, если бы вы избавились от 4 промежуточных этапов E, W, N, S и просто поместили атрибут transform непосредственно на теги для вертикальной и горизонтальной таблиц.Но он также будет менее модульным и более сложным для понимания, поэтому вы можете не захотеть это делать.Я не думаю, что есть способ сделать его более компактным, не теряя преимущества выполнения каждого из поворотов только один раз (кроме случаев, когда вы сокращаете длинные имена как «делающие его более компактным»: -)

...