html --- SVG --- javascript --- 旋转矩形
可缩放矢量图形(英语:Scalable Vector Graphics,SVG)是基于可扩展标记语言(XML),
用于描述二维矢量图形的一种图形格式。SVG由W3C制定,是一个开放标准。
在 Internet Explorer 10(Quirks 和 IE10 文档模式)中,矢量标记语言 (VML) 已过时。
如有疑问请参考:http://msdn.microsoft.com/zh-cn/library/ie/hh801223
更多疑问请参考:http://zh.wikipedia.org/wiki/SVG
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>旋转矩形</title> <script> // Global variables. // Define SVG namespace. var svgNS = "http://www.w3.org/2000/svg"; // Placeholder for parent SVG element to be created. var mySvg; // Placeholder for rectangle object to be created. var myRect; // Flag to stop rectangle spinning. var spin; // Initial angle to start rotation from. var myAngle = 0; // Values of center of rotation. var myX = 250; var myY = 150; // Make Rectangle. function makeRect() { if(document.getElementsByTagNameNS(svgNS, "svg").length != 0 ) return; /* * createElementNS() 方法可创建带有指定命名空间的元素节点 * setAttributeNS() 方法创建或改变具有命名空间的属性 */ // Create parent SVG element with width and height. mySvg = document.createElementNS(svgNS,"svg"); mySvg.setAttributeNS(null,"width", "800px"); mySvg.setAttributeNS(null,"height", "450px"); // Create rectangle element from SVG namespace. myRect = document.createElementNS(svgNS,"rect"); // Set rectangle's attributes. myRect.setAttributeNS(null,"width","145px"); myRect.setAttributeNS(null,"height","90px"); myRect.setAttributeNS(null,"x","200px"); myRect.setAttributeNS(null,"y","100px"); myRect.setAttributeNS(null,"fill","lightcoral"); myRect.setAttributeNS(null,"stroke","deepskyblue"); myRect.setAttributeNS(null,"stroke-width","5px"); // Append rectangle to the parent SVG element. // Append parent SVG element to the div node. mySvg.appendChild(myRect); document.getElementById("myAnchor").appendChild(mySvg); } // Do the rotation every 10 milliseconds until cancelled. function rotateRect() { spin = setInterval("spinRect()", 10); } // Spin rectangle by 5 degrees. function spinRect() { // Rotation is a subset of the transform attribute. // Note the use of quotes and plus signs with variables in SVG attribute call. myRect.setAttributeNS(null,"transform","rotate(" + myAngle + "," + myX + "," + myY + ")"); myAngle += 5; } </script> </head> <body> <br><br> <!-- Button to create rectangle. --> <input type="BUTTON" value="Make Rectangle" onclick="makeRect()"> <!-- Button to rotate rectangle. --> <input type="BUTTON" value="Rotate Rectangle" onclick="rotateRect()"> <!-- Button to close webpage with spin variable. --> <!-- clearInterval() 方法可取消由 setInterval() 设置的 timeout。 clearInterval() 方法的参数必须是由 setInterval() 返回的 ID 值。--> <input type="BUTTON" value="Stop!" onclick="clearInterval(spin)"> <br><br> <!-- The rectangle will be attached to the document here. --> <div id="myAnchor"></div> </body> </html>
运行结果如下:
html --- SVG --- javascript --- 旋转矩形的更多相关文章
- html --- VML --- javascript --- 旋转矩形
矢量标记语言 --- Vector Markup Language 运行它的代码需要打开IE的兼容性视图 如有疑问请参考:http://msdn.microsoft.com/en-us/library ...
- cocos2d 判断旋转矩形是否包含某个点
本来想画个图演示一下,但是折腾了一会发现画不好,我的win10系统没有安装office,以后再看的话再补上吧.不废话了. 如图所以,如果判断点P是否被矩形A所包含,非常容易.那么如果矩形A以中心点逆时 ...
- css3+javascript旋转的3d盒子
今天写点css3,3d属性写的3d盒子,结合javascript让盒子随鼠标旋转起来 今天带了css3新属性3d <!DOCTYPE html> <html> <head ...
- 旋转矩形碰撞检测 OBB方向包围盒算法
在cocos2dx中进行矩形的碰撞检测时需要对旋转过的矩形做碰撞检查,由于游戏没有使用Box2D等物理引擎,所以采用了OBB(Oriented bounding box)方向包围盒算法,这个算法是基于 ...
- RotateRect(旋转矩形)的倾斜旋转变换矫正
在Opencv中的图像处理中,经常要用到minAreaRect()函数求最小外接矩形,该函数的返回值就是一个RotatedRect类对象. RotatedRect类定义如下: class CV_EXP ...
- javascript中矩形的碰撞检测---- 计算碰撞部分的面积
今天在做一个拖拽改变元素排序的东西的时候,在做被拖动元素同时碰撞到两个元素时,究竟应该与哪个元素交换位置的问题上,纠结到崩溃,实在是想不到别的办法去做了,只能去想办法计算碰撞的面积. 这应该不是最合适 ...
- opencv HSV找颜色,找轮廓用最小旋转矩形框出
#include <opencv2/opencv.hpp> #include<iostream> #include<string> using namespace ...
- SVG基础以及使用Javascript DOM操作SVG
SVG 不依赖分辨率 支持事件处理器 最适合带有大型渲染区域的应用程序(比如谷歌地图) 复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快) 不适合游戏应用 Canvas 依赖分辨率 不支持事 ...
- 矩形旋转碰撞,OBB方向包围盒算法实现
怎样进行2D旋转矩形的碰撞检測.能够使用一种叫OBB的检測算法(Oriented bounding box)方向包围盒.这个算法是基于SAT(Separating Axis Theorem)分离轴定律 ...
随机推荐
- Java 数据结构之Stack
Stack类表示后进先出(LIFO)的对象堆栈.栈是一种非常常见的数据结构.Stack继承Vector,并对其进行了扩展. 用法: 1.只有一个构造函数: public Stack() {} 2.创建 ...
- 局部敏感哈希Locality Sensitive Hashing(LSH)之随机投影法
1. 概述 LSH是由文献[1]提出的一种用于高效求解最近邻搜索问题的Hash算法.LSH算法的基本思想是利用一个hash函数把集合中的元素映射成hash值,使得相似度越高的元素hash值相等的概率也 ...
- 可视化MNIST之降维探索Visualizing MNIST: An Exploration of Dimensionality Reduction
At some fundamental level, no one understands machine learning. It isn’t a matter of things being to ...
- linux poll
man poll: NAME poll, ppoll - wait for some event on a file descriptor SYNOPSIS #include <poll.h&g ...
- 笔记三、apache搭建gitweb【转】
参考文章: http://www.latelee.org/using-gnu-linux/ubuntu-apache-gitweb.html http://blog.csdn.net/ ...
- Android端通过HttpURLConnection上传文件到服务器
Android端通过HttpURLConnection上传文件到服务器 一:实现原理 最近在做Android客户端的应用开发,涉及到要把图片上传到后台服务器中,自己选择了做Spring3 MVC HT ...
- 选错实施顾问公司 ERP项目九死一生
今天接到一个朋友的电话,他是一家企业老总.这位老总感到非常头疼的是他的企业选择了一款国际上名气很大的ERP软件,但实施效果却强差人意.他的疑问是"不是说只要选对了ERP产品,谁实施都能成功吗 ...
- [CCPC2016]网赛部分比赛代码
来自HDOJ: 5833 ( Zhu and 772002 ) /* ━━━━━┒ギリギリ♂ eye! ┓┏┓┏┓┃キリキリ♂ mind! ┛┗┛┗┛┃\○/ ┓┏┓┏┓┃ / ┛┗┛┗┛┃ノ) ┓┏ ...
- Navicat数据存放位置和备份数据库路径设置
navicat的数据库存放位置在什么地方?带着这样的疑问,我们去解决问题,navicat是默认安装,mysql也是默认安装,数据库存在默认用户所在的目录下面. 安装MySQL时,请选择“Custom” ...
- HDU 1080 Human Gene Functions
最长公共子序列的变形 题目大意:给出两个基因序列,求这两个序列的最大相似度. 题目中的表格给出了两两脱氧核苷酸的相似度. 状态转移方程为: dp[i][j] = max(dp[i-1][j]+Simi ...