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)分离轴定律 ...
随机推荐
- 练习用php做表格
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- cookie使用
知识拷贝. 理论很简单,而且模式也和大多请求 http://blog.csdn.net/lanmao100/article/details/2328491(源地址).返回状态的SSO差不多.但是有几个 ...
- Android模拟器使用教程
Using the Emulator In this document Overview Android Virtual Devices and the Emulator Starting and S ...
- Spring+Hibernate配置多数据源
配置说明 在实际应用中,经常会用到读写分离,这里就这种情况进行Spring+Hibernate的多数据源配置.此处的配置只是让读的方法操作一个数据库,写的方法操作另外一个数据库. 注:我这里的配置JD ...
- 基于百度地图js进行地理定位
http://www.mengxiangchaoren.com/jquery.select.position.min.js 使用方法 $("#myCity").renderSele ...
- LA 3177 长城守卫
n为偶数的时候比较简单,就是相邻两个守卫的礼物和的最大值. 首先这是个下限,其次这个值也满足题目要求,所以这就是答案了. 当n为奇数的时候上限是守卫索要礼物的最大值的三倍. 这也很容易理解,比如n=5 ...
- POJ 3628 Bookshelf 2【01背包】
题意:给出n头牛的身高,以及一个书架的高度,问怎样选取牛,使得它们的高的和超过书架的高度最小. 将背包容量转化为所有牛的身高之和,就可以用01背包来做=== #include<iostream& ...
- 【转】Java之 内存区域和GC机制
转自:Leo Chin 目录 Java垃圾回收概况 Java内存区域 Java对象的访问方式 Java内存分配机制 Java GC机制 垃圾收集器 Java垃圾回收概况 Java GC(Garbage ...
- 使用WINRAR来制作安装程序
1. WINRAR版本 2. 将所有文件放在同一个文件夹下 3. 选中所有文件点击右键 -> Add to archive 4. General设置 5. Advanced 设置 6. 确定开始 ...
- 韦东山驱动视频笔记——3.字符设备驱动程序之poll机制
linux内核版本:linux-2.6.30.4 目的:我们在中断方式的按键应用程序中,如果没有按键按下,read就会永远在那等待,所以如果在这个程序里还想做其他事就不可能了.因此我们这次改进它,让它 ...