`

svg学习

 
阅读更多
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<svg onload="init(evt)" width="500" height="500" zoomAndPan="disable"
     xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink">
    <script type="text/ecmascript"><![CDATA[
        var svgns = "http://www.w3.org/2000/svg";
        var width   = 6;
        var height  = 6;
        var r       = 15;
        var offset  = 30;
        var spacing = 20;
        var elems   = [];
        var midX    = (500 - ((width-1)  * spacing)) / 2;
        var midY    = (470 - ((height-1) * spacing)) / 2;
        var world;
       
        function init(e) {
            if ( window.svgDocument == null )
                svgDocument = e.target.ownerDocument;
           
            world = svgDocument.getElementById("world");
            world.setAttributeNS(
                null,
                "transform",
                "translate(" + midX + "," + midY + ")"
            );
            createElements();
        }
        function createElements() {
            for ( var y = 0; y < height; y++ ) {
                for ( var x = 0; x < width; x++ ) {
                    createElement(x, y);
                }
            }
        }
        function createElement(x, y) {
            var elem = svgDocument.createElementNS(svgns, "circle");
            var cx = x * spacing;
            var cy = y * spacing;
            var translate = "translate(" + cx + "," + cy + ")";
           
            elem.setAttributeNS(null, "cx", -offset);
            elem.setAttributeNS(null, "r", r);
            elem.setAttributeNS(null, "transform", translate);
            // store shape for later manipulation
            elems.push([elem, cx, cy]);
            // add shape to world
            world.appendChild(elem);
        }
        function update(e) {
            var length = elems.length;
           
            for ( var i = 0; i < length; i++ ) {
                var elem = elems[i];
                var dx = (e.clientX - elem[1]) - midX;
                var dy = (e.clientY - elem[2]) - midY;
                var angle = 180 * Math.atan2(dy, dx) / Math.PI;
                var rotate = "rotate(" + angle + ")";
                var translate = "translate(" + elem[1] + "," + elem[2] + ")";
                elem[0].setAttributeNS(
                    null,
                    "transform",
                    translate + " " + rotate
                );
            }
        }
        function changeColor(e) {
            var color = e.target.getAttributeNS(null, "stroke");
            world.setAttributeNS(null, "stroke", color);
            world.setAttributeNS(null, "fill", color);
        }
    ]]></script>
    <rect x="-16384" y="-16384" width="32767" height="32767"
          fill="none" pointer-events="fill" onmousemove="update(evt)"/>
    <rect x="10" y="10" width="478" height="478" rx="5" ry="5"
          fill="none" stroke="grey" stroke-width="2"/>
    <g id="world" pointer-events="none"
       stroke="rgb(192,124,158)" fill="rgb(192,124,158)" fill-opacity="0.5"/>
    <rect x="10" y="460" width="478" height="29" rx="5" ry="5"
          stroke="grey" stroke-width="2" fill="rgb(230,230,230)"/>
    <g fill-opacity="0.5" onclick="changeColor(evt)">
        <circle cx="25"  cy="475" r="10" stroke="rgb(192,124,158)" fill="rgb(192,124,158)"/>
        <circle cx="50"  cy="475" r="10" stroke="rgb(100,149,5)"   fill="rgb(100,149,5)"/>
        <circle cx="75"  cy="475" r="10" stroke="rgb(8,168,128)"   fill="rgb(8,168,128)"/>
        <circle cx="100" cy="475" r="10" stroke="rgb(240,96,18)"   fill="rgb(240,96,18)"/>
        <circle cx="125" cy="475" r="10" stroke="rgb(73,122,247)"  fill="rgb(73,122,247)"/>
        <circle cx="150" cy="475" r="10" stroke="rgb(240,203,0)"   fill="rgb(240,203,0)"/>
        <circle cx="175" cy="475" r="10" stroke="rgb(170,78,247)"  fill="rgb(170,78,247)"/>
    </g>
    <text x="485" y="485" font-size="10px" font-rendering="optimizeLegibility"           fill="grey" text-anchor="end" pointer-events="none">            Copyright 2004, Kevin Lindsey    </text>
</svg>
分享到:
评论

相关推荐

    SVG学习教程 SVG学习教程

    本文将详细介绍 SVG 学习教程,包括可升级 2D 矢量图形 API,矢量图形的优点,SVG 技术的发展,SVG-Tiny 文件格式,microDOM 等。 首先,Scalable 2D Vector Graphics API 是 J2ME 的一个可选包,允许开发者在移动...

    svg 学习 资料 合集

    通过这个SVG学习资料合集,你将能够从零开始,逐步掌握SVG的基本概念、语法、动画和高级应用,为你的设计工作或开发项目增添更多可能。同时,不断实践和探索,你会发现SVG是一个强大且灵活的工具,可以为你的作品...

    SVG学习资料,SVG相关软件汇总找资料

    **SVG学习资料**: 1. **在线教程**:W3School、MDN Web Docs等网站提供了丰富的SVG教程,适合初学者入门。 2. **书籍**:《SVG Mastery》、《SVG Essentials》等专业书籍深入讲解SVG技术。 3. **课程**:Coursera、...

    很全面的svg学习资料

    SVG,全称Scalable Vector Graphics,是一种基于XML的矢量图像格式,广泛应用于网页设计、移动应用和软件开发...通过深入学习SVG教程1和SVG教程2,你可以掌握SVG的基本用法和高级技巧,从而在项目中更好地运用SVG技术。

    SVG 学习网站以及实例

    四、SVG学习资源 1. **在线教程**:如MDN Web Docs提供了详尽的SVG教程,涵盖基本语法、图形绘制、动画等方面。 2. **书籍**:《SVG精要》是一本深入介绍SVG的书籍,适合初学者和进阶者阅读。 3. **示例代码**:通过...

    SVG学习笔记(Scalable Vector Graphics)

    ### SVG学习笔记(Scalable Vector Graphics) #### SVG概述 SVG,全称为可缩放矢量图形(Scalable Vector Graphics),是一种基于XML的语言,用于描述二维矢量图形及其行为。SVG不仅支持静态图形,还支持动画以及...

    HTML,css效果收集,SVG学习.zip

    除了HTML实例之外,资源集合还特别强调了SVG学习的重要性,提供了相关的学习包。例如,“CSS3实现150个动画SVG图标”资源包,不仅讲解了SVG图标的基本使用方法,还演示了如何利用CSS3的特性来为图标添加各种动画效果...

    SVG学习资料/PPT

    SVG学习资料 SVG是W3C正式推荐的开放标准的文本式矢量图形描述语言。使用SVG可以在网页上显示出各种各样高质量的矢量图形。并且SVG是一种使用XML来描述二维图像的语言,这使SVG可以与许多其他标准无缝结合 。

    svg学习----基础学习

    在SVG的学习过程中,掌握以下几个核心知识点至关重要: 1. **SVG的基本结构**:SVG图形由一系列的元素组成,如矩形(`&lt;rect&gt;`)、圆形(`&lt;circle&gt;`)、椭圆(`&lt;ellipse&gt;`)、线(`&lt;line&gt;`)、路径(`&lt;path&gt;`)等。...

    基于svg的机器学习中-点线等拖拉拽工作流核心svg渲染原理部分demo.zip

    这个名为"基于svg的机器学习中-点线等拖拉拽工作流核心svg渲染原理部分demo.zip"的压缩包文件,就是这样一个例子,它展示了如何使用SVG(Scalable Vector Graphics)技术来实现机器学习工作流的可视化拖拽功能。SVG...

    SVG经典教程1 (SVG从入门到精通)

    11. 工具和资源:推荐SVG编辑器、在线工具以及学习资源,帮助读者进一步提升SVG技能。 这个SVG经典教程1的上册,作为初学者的引导,将带领你逐步走进SVG的世界,从基础到实践,让你全面了解并熟练运用SVG进行图形...

    svg 学习 资料

    SVG,全称Scalable Vector Graphics,是一种基于XML(可扩展标记语言)的矢量图形格式。它允许开发者创建清晰、可缩放的图形,无论放大...通过学习SVG的语法和应用,开发者可以创建出更具交互性和适应性的图形内容。

    svg 学习资料大家分享一下

    基础学习及javascript 之间的信息传递

    svg 学习资料 以前看过很好就放上来

    svg 关于javascript的数据转换及网页编程

    一个详细的svg使用手册

    SVG,全称Scalable Vector Graphics,是一种基于XML的矢量图像格式,广泛应用于网页设计、移动应用和图形用户界面中。...通过深入学习这个手册,开发者将能够熟练掌握SVG的使用,提升网页和应用的视觉质量和用户体验。

    SVG经典教程2 (SVG从入门到精通)

    本教程“SVG经典教程2”是SVG学习的初级教程,旨在帮助初学者深入理解并掌握SVG的核心概念和实用技巧。 ### 1. SVG的基本概念 SVG图像由一系列几何形状组成,如线条、矩形、圆形、曲线等,这些形状在放大或缩小时仍...

    SVG学习手册

    我自己学习过程中总结的有关svg的内容,放到这里与大家共同分享

    SVG学习示例

    本篇文章将深入探讨SVG的学习示例,通过源码和工具的运用,帮助你更好地理解和掌握这一技术。 首先,SVG的基本结构是XML,这意味着你可以像处理XML文档一样编辑SVG。一个简单的SVG图像可能包含`&lt;svg&gt;`根元素,以及...

    svg 项目源码汇总包含10多个具体可以应用的源码(强烈推荐物超所值)

    综上所述,这个源码包提供了一个全面的SVG学习平台,不仅涵盖了SVG的基础使用,还深入到SVG在JavaScript、C#和三层架构中的高级应用,以及数据可视化的实践。对于想提升SVG技能的开发者来说,这无疑是一份宝贵的资源...

Global site tag (gtag.js) - Google Analytics