SVG 旋转图形实例

本实例展示如何在SVG中画出一个正方形并使之旋转。运行结果如下图所示:

在文本框中输入时间间隔,单位是毫秒。点击Start按钮,蓝色方块就会开始转动,每个时间间隔变化一度。变换的角度在下面的Angle处显示。

实现代码如下,技术要点已经详细注释。

<!DOCTYPE html>
<?xml version="1.0" ?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <!-- <svg>标签声明一个svg画布长40px宽40px -->
    <svg width="40px" height="40px" style="border:1px solid black">
        <!-- <g>标签可以包含多个图形合成一个组,并对组里的图形进行统一处理。transform="translate(20,20)"表示在<g>里的所有图形都会向下向右平移20px -->
        <g transform="translate(20,20)" id="myImage">
            <!-- <rect>可以在画布上画出一个长方形,此长方形长宽都是20px,图形中心在(-10,-10)处,但经过<g>的变换会落在(10,10)处。颜色是蓝色 -->
            <rect id="mySquare" x="-10" y="-10" width="20" height="20" fill="blue"  />
        </g>
    </svg>
    <br/>
    <input id="speed" type="text" value="10" />
    <button id="zoom" onclick="startAnimation();">Start</button>
    <p id="angle"></p>
    <script>
        var squareShape;
        function startAnimation() {
            //squareShape是要转动的那个正方形
            squareShape = document.getElementById("mySquare");
            //初始转角为0
            squareShape.currentTheta = 0;
            //setInterval函数可以无限循环执行某个函数,第一个参数是要执行的函数名,第二个参数是时间间隔,单位毫秒。
            setInterval("animateImage()",speed.value);

        }
        //转动正方形
        function animateImage() {
            //正方形的transform属性是对图形进行变换,rotate(x)表示对图形旋转x度
            squareShape.setAttribute("transform", "rotate(" + squareShape.currentTheta + ")");
            squareShape.currentTheta += 1;
            //显示旋转的度数
            document.getElementById("angle").innerText = "Angle:" + squareShape.currentTheta;
        }
    </script>
</body>
</html>
时间: 2024-08-11 06:49:44

SVG 旋转图形实例的相关文章

JavaScript图形实例:图形的旋转变换

旋转变换:图形上的各点绕一固定点沿圆周路径作转动称为旋转变换.可用旋转角表示旋转量的大小. 旋转变换通常约定以逆时针方向为正方向.最简单的旋转变换是以坐标原点(0,0)为旋转中心,这时,平面上一点P(x,y) 旋转了θ之后,变成点P’(x,y) ,如图1所示. 图1 点P逆时针旋转 由三角关系可得: 平面上一点P(x,y)若按顺时针方向旋转了θ之后,变成点P’(x,y) ,如图2所示. 图2 点P顺时针旋转 由三角关系可得: 1.三角形旋转 先绘制一个三角形,然后将该三角形依次顺时针旋转45°,

SVG 基础图形

SVG 基础图形 SVG包含了以下的基础图形元素: 矩形(包括可选的圆角),使用<rect>元素创建 圆形,使用<circle>元素创建 椭圆形,使用<ellipse>元素创建 直线,使用<line>元素创建 折线,使用<polyline>元素创建 多边形,使用<polygon>元素创建 理论上,这些基础图形元素都能用<path>元素来构建的相同的图形.并且所有可用于<path>元素的属性都可以应用在这些基础图

理解SVG的图形填充规则

SVG的图形填充规则通过fill-rule属性来指定. 有效值:   nonzero | evenodd | inherit 默认值:   nonzero fill-rule属性用于指定使用哪一种算法去判断画布上的某区域是否属于该图形“内部” (内部区域将被填充).对一个简单的无交叉的路径,哪块区域是“内部” 是很直观清除的.但是,对一个复杂的路径,比如自相交或者一个子路径包围另一个子路径,“内部”的理解就不那么明确了. nonzero 字面意思是“非零”.按该规则,要判断一个点是否在图形内,从

多比(SVG/VML)图形控件多比(SVG/VML)图形控件免费下载

多比图形控件是一款基于Web(VML和SVG技术)的矢量图形控件, 类似于网页上的Visio控件,是目前国内外最佳的基于web的工作流设计器.工作流流程监视器解决方案. 可广泛应用于包括:电力.军工.煤炭.化工.科研.能源等各种监控软件.web工作流设计器.asp.net工作流设计器.电力.化工.煤炭.工控组态软件.仿真.地理信息系统.工作流.复杂报表 工业SCADA系统.ERP流程设计系统.图形管理.图形拓扑分析.GIS地理信息系统系统.工程制图等领域.目前已经为全球20多个国家的数千家客户采

多比(SVG/VML)图形控件多比(SVG/VML)图形拓扑图控件免费下载地址

多比图形控件是一款基于Web(VML和SVG技术)的矢量图形控件, 类似于网页上的Visio控件拓扑图软件,是目前国内外最佳的基于web的工作流设计器.工作流流程监视器解决方案. 可广泛应用于包括:电力.军工.煤炭.化工.科研.能源等各种监控软件.web工作流设计器.asp.net工作流设计器.电力.化工.煤炭.工控组态软件.仿真.地理信息系统.工作流.复杂报表 工业SCADA系统.ERP流程设计系统.图形管理.图形拓扑分析.GIS地理信息系统系统.工程制图等领域.目前已经为全球20多个国家的数

多比(SVG/VML)图形控件拓扑图控件免费下载

多比图形控件是一款基于Web(VML和SVG技术)的矢量图形拓扑图控件, 类似于网页上的Visio控件,是目前国内外最佳的基于web的工作流设计器.工作流流程监视器解决方案. 可广泛应用于包括:电力.军工.煤炭.化工.科研.能源等各种监控软件.web工作流设计器.asp.net工作流设计器.电力.化工.煤炭.工控组态软件.仿真.地理信息系统.工作流.复杂报表 工业SCADA系统.ERP流程设计系统.图形管理.图形拓扑分析.GIS地理信息系统系统.工程制图等领域.目前已经为全球20多个国家的数千家

看我如何修改vlc2.1源码-libvlc录像 视频效果控制 旋转 图形 亮度 对比度 等控制

http://58.251.41.199:9200/upload/videoshow.wmv 上面地址是我整个做出来的视频演示效果.呵呵,达到了想要的效果,但是也牺牲了不小夜晚在linux上编译 1.首先你要找到增加libvlc的patch,修改源码.在官网上有,耐心找下. 2.一定要在unbuntu上编译vlc 3.要把他的vlc源码导出来理下其代码模块 搞好这几块,想咋改都行.想要源码可联系我396963546qq, 可以技术指导析,但是不会免费. 看我如何修改vlc2.1源码-libvlc

【转】ionicLoading,ionic-spinner SVG旋转加载

原文链接:http://www.cnblogs.com/xuan-0... ionic 加载动作 $ionicLoading$ionicLoading 是 ionic 默认的一个加载交互效果.里面的内容也是可以在模板里面修改. angular.module('LoadingApp', ['ionic']) .controller('LoadingCtrl', function($scope, $ionicLoading) { $scope.show = function() { $ionicLo

SVG基础图形与参数

SVG是什么 SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义WEB上使用的矢量图 SVG 使用 XML 格式定义图形 SVG 图像在缩放时其图形质量不会有所损失 SVG 是W3C推荐的 SVG 与诸如 DOM和 XSL 之类的W3C标准是一个整体 SVG的优势 SVG 可被非常多的工具读取和修改(比如记事本) SVG 与 JPEG 和 GIF 图像比起来,尺寸更小,且可压缩性更强. SVG 是可缩放的 SVG 图像可在任何的分辨率下被高质量地打印