XML/SVG/translate

Материал из Web эксперт
Перейти к: навигация, поиск

Rotating a Line Segment

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN"
 "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd">
<svg width="100%" height="100%">
  <g transform="translate(200,180)">
    <line x1="0" y1="0"
      x2="150"   y2="0"
      stroke-dasharray="4 4 4 4"
      stroke="blue" stroke-width="8"/>
    <line x1="0" y1="0"
      x2="150"   y2="0"
      stroke-dasharray="8 8 8 8"
      stroke="red" stroke-width="8">
      <animateTransform attributeName="transform"
                        attributeType="XML"
                        type="rotate"
                        from="0" to="360" dur="4s"/>
    </line>
  </g>
</svg>



Rotating Rectangles (rotation point: center)

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN"
 "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg- 20001102.dtd">
<svg width="100%" height="100%">
    <!-- rotation point: center -->
    <g transform="translate(400,150)">
      <rect x="-50" y="-25"
            width="100" height="50"
            stroke-dasharray="8 8 8 8"
            fill="yellow" stroke="green" stroke-width="4">
            <animateTransform attributeName="transform"
                              attributeType="XML"
                              type="rotate" fill="freeze"
                              from="0" to="360" dur="4s"/>
      </rect>
    
      <ellipse cx="0" cy="0"
               rx="4" ry="4"
               style="fill:blue;stroke:none"/>
    </g>

</svg>



Rotating Rectangles (rotation point: upper-left vertex)

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN"
 "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg- 20001102.dtd">
<svg width="100%" height="100%">
    <!-- rotation point: upper-left vertex -->
    <g transform="translate(150,150)">
      <rect x="0" y="0"
            width="100" height="50"
            stroke-dasharray="4 4 4 4"
            fill="red" stroke="green" stroke-width="4">
            <animateTransform attributeName="transform"
                              attributeType="XML"
                              type="rotate" fill="freeze"
                              from="0" to="360" dur="4s"/>
      </rect>
    
      <ellipse cx="0" cy="0"
               rx="4" ry="4"
               style="fill:blue;stroke:none"/>
    </g>

</svg>



Using the SVG translate Function

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN"
 "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd">
<svg width="100%" height="100%">
  <g transform="translate(0,0)">
    <rect x="0" y="0" width="50" height="50"
      style="fill:red;stroke:yellow" />
  </g>
  <g transform="translate(50,50)">
    <rect x="0" y="0" width="50" height="50"
      style="fill:green;stroke:red" />
  </g>
  <g transform="translate(100,100)">
    <rect x="0" y="0" width="50" height="50"
      style="fill:blue;stroke:green" />
  </g>
</svg>