2010-12-17 57 views
0

是否可以写这个代码更紧凑?我有一张桌子,我想旋转。然而,我使用四种不同的对象:TableWithCharisW..S我怎么能写这个SVG文件更紧凑?

<?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

这将是更紧凑,如果你摆脱4个中间阶段E,W,N,S的,只是把变换属性直接在垂直和水平表格的标签。但它的模块化程度较低,难以理解,因此您可能不想这样做。我不认为有一种方法可以让它更紧凑,而不会失去每次旋转一次的优势(除非您将长名称缩短为“使其更紧凑”:-)