也就是java的散点图,之前用jfreechart实现了一个,效果不理想,后来采用svg实现,还不错
不多说了直接上代码
svg文件
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 12.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_svg "http://www.w3.org/2000/svg">
<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
]>
<svg width = "100%" height="100%">
<script xlink:href="../../js/monitor.js"></script>
<rect x="0" y="0" id="rect1" width = "520" height="520" fill="black" stroke="white" stroke-width="0"></rect>
</svg>
monitor.js
var point = null;
var beginpoint = null;
var endpoint = null;
var SVGDoc;
var currentMode = 0;
var beginpointx = 0;
var beginpointy = 0;
var endpointx = 0;
var endpointy = 0;
var svgns = "http://www.w3.org/2000/svg";
var xlinkns = "http://www.w3.org/1999/xlink";
var svgDocument;
var svgRoot;
var parentwin;
var evt;
function initgis(evt) {
evt = evt;
svgDocument = evt.target.ownerDocument;
svgRoot = svgDocument.documentElement;
parentwin = window.parent;
}
//绘制点的方法
function CreatePoint(svgDoc,pointx, pointy, id) {
svgDocument = svgDoc;
var svgns = "http://www.w3.org/2000/svg";
var x = pointx;
var y = pointy;
var shape3 = svgDocument.createElementNS(svgns, "rect");
shape3.setAttributeNS(null, "id", id);
shape3.setAttributeNS(null, "x", x);
shape3.setAttributeNS(null, "y", y);
shape3.setAttributeNS(null, "width", "1");
shape3.setAttributeNS(null, "height", "1");
shape3.setAttributeNS(null, "fill", "green");
svgDocument.documentElement.appendChild(shape3);
}
function RemovePoint(svgDoc,id) {
svgDocument = svgDoc;
var root = svgDocument.getRootElement();
var vid = root.getElementById(id);
if (vid != null) {
root.removeChild(vid);
}
}
jsp中相关代码
function GainConstellationGraphSVG(cardid,channel){
var url = "<%=basePath%>ajax/GainConstellationGraphSVG.action?Rnd="+Math.random()+"&cardid="+cardid+"&channel="+channel;
if(ajaxSvg){
ajaxSvg.open("get", url, true);
ajaxSvg.onreadystatechange = ConstellationGraphSVG;
ajaxSvg.send(null);
}
}
function ConstellationGraphSVG(){
if (ajaxSvg.readyState == 4)
{
if (ajaxSvg.status == 200)
{
var msg = ajaxSvg.responseText;
if (msg != "") {
var list = msg.split('|');
for (var i in list) {
var point = list[i].split(',');
svgWin = SVGGraph.window;
svgDoc = SVGGraph.getSVGDocument();
svgWin.RemovePoint(svgDoc,point[2]);
}
for (var key in list) {
var point = list[key].split(',');
svgWin = SVGGraph.window;
svgDoc = SVGGraph.getSVGDocument();
svgWin.CreatePoint(svgDoc,point[0], point[1],point[2]);
}
}else{
///alert("星座图加载失败!");
//return;
}
}
}
}
<embed id="SVGGraph" name="SVGGraph" src="rect.svg" width="520" height="520" type="image/svg+xml" wmode="transparent"/>
没秒钟从后台获取到坐标数据,一共16*64个点,绘制点的时候定义了该点的ID,每次重新绘制点都会把之前的点给移除掉,相当于更新星座图。
svgWin = SVGGraph.window;
svgDoc = SVGGraph.getSVGDocument();
这两个参数是关键点,第一个是获取jsp页面的星座图对象,第二个是获取SVG文档的DOM(文档对象模型)
效果图
- 大小: 5.2 KB
分享到:
相关推荐
在JavaScript中实现QPSK信号星座图的绘制,通常会涉及到以下几个知识点: 1. **数据处理**:首先,需要将二进制数据转化为QPSK对应的相位值。这通常涉及到位运算和逻辑操作。 2. **数学运算**:理解QPSK的相位空间...
3. **SVG图形**:为了确保在不同设备和分辨率上都有良好的显示效果,可以选择使用SVG(Scalable Vector Graphics)格式来绘制星座图标。SVG是矢量图形,可以无限缩放而不失真,非常适合制作旋转动画的元素。 4. **...
在ConstallationApp中,SVG可能被用来绘制星座的轮廓,确保在任何尺寸下都能保持清晰。SVG的另一个优点是其易于解析和操作,JavaScript可以方便地改变SVG元素的属性,实现动画和交互效果。 四、项目结构与实现 在...
从标题和描述来看,我们可以推测这是一个软件应用程序,其核心功能是让用户通过一次连续的线条绘制连接五个预设的点,以此来形成不同的图形,这些图形可能代表十二星座的图腾。接下来,我们将深入探讨这个项目所涵盖...
4. **矢量图形**:考虑到图标可能需要在各种尺寸下保持清晰,设计师通常会使用矢量图形软件(如Adobe Illustrator)来绘制线条图标,以确保图标在放大或缩小后不失真。 5. **排版与布局**:如果这些图标是作为一个...
在这个特效中,Canvas被用来绘制星空中的星星,以及可能的流星、星座等元素。 2. **JavaScript**:JavaScript是网页开发中的脚本语言,负责处理用户的交互事件、更新DOM(文档对象模型)以及控制Canvas动画。在星空...
节点之间的关系可以通过CSS伪类如`:before`和`:after`来表示线条,或者利用SVG绘制线条。为了使树形结构更生动,可以添加动画效果,如节点的淡入淡出、线条的生长等。 此外,JavaScript中的事件监听是必不可少的。...
Virgo Icons 可能包含一系列精心绘制的图形,这些图形可能包括处女座的星座图案、处女座符号、代表该星座性格特点的形象等。 处女座是十二星座之一,位于黄道带上,日期范围为8月23日至9月22日。这个星座通常被描绘...
3. **SVG或Canvas绘图**:为了在网页上绘制星盘,开发者可能会使用SVG(可缩放矢量图形)或HTML5的Canvas元素,JavaScript可以直接操作这些元素来绘制复杂的图形。 4. **响应式设计**:为了适应不同设备的屏幕大小...
由于没有进一步的具体信息,我们只能推测这个压缩包可能包含了一系列精心绘制的、色彩绚丽的日月星辰图标,每个图标都代表了不同的天体或天文现象,比如太阳、月亮、行星、星座、彗星等。 【标签】:虽然没有提供...
3. **SVG和PNG格式**:为了确保塔罗牌图像在不同尺寸下都能保持清晰,艺术家可能会选择使用矢量图形(SVG)或高分辨率的PNG格式。这两种格式都适合网页和移动应用,是IT行业中的常见文件类型。 4. **版权与知识产权...