js绘图库raphael实例

模拟微步

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
body {
    text-align: center;
}
#canvas {
    background-color: pink;
    margin: 0 auto;
    width: 80%;
    height: 100px;
}
</style>
<script type="text/javascript" src="raphael.js"></script>
<script type="text/javascript">
var canvas = null;
var paper = null;
var nodes = [];
var links = [];
var col_width = 100;
var row_height = 100;
var node_count = 100;
window.onload = function() {
    canvas = document.getElementById(‘canvas‘);
    paper = Raphael(‘canvas‘);
    initNodes();
    initLinks();
    func1();
};
window.onresize = function() {
    func1();
};
function initNodes() {
    for (var i = 0; i < node_count; i++) {
        var node = {};
        node.shape = paper.circle(50, 50, 20, 20);
        node.text = paper.text(50, 50, i);
        nodes.push(node);
    }
}
function initLinks() {
    for (var i = 0; i < nodes.length; i++) {
        if (i == nodes.length - 1) break;
        var n = nodes[i];
        var n1 = nodes[i+1];
        var path = [
            ["M", n.shape.attr("cx"), n.shape.attr("cy")],
            ["L", n1.shape.attr("cx"), n1.shape.attr("cy")]
        ];
        links.push(paper.path(path).attr({stroke: "green", "stroke-width": 2}));
    }
}
function setNodes() {
    for (var i = 0; i < nodes.length; i++) {
        var n = nodes[i];
        //n.shape.translate(i*50, 50);
        //n.text.translate(i*50, 50);
        n.shape.attr({cx: i*50, cy: 50});
        n.text.attr({x: i*50, y: 50});
    }
}
function setLinks() {
    for (var i = 0; i < nodes.length; i++) {
        if (i == nodes.length - 1) break;
        var n = nodes[i];
        var n1 = nodes[i+1];
        var path = [
            ["M", n.shape.attr("cx"), n.shape.attr("cy")],
            ["L", n1.shape.attr("cx"), n1.shape.attr("cy")]
        ];
        links[i].attr({path: path});
    }
}
function func1() {
    var canvas_width = canvas.offsetWidth;
    var row_node_count = parseInt(canvas_width / col_width);
    var row_count = parseInt(node_count / row_node_count) + 1;
    var canvas_height = row_height * row_count;
    //alert(canvas_width);
    canvas.style.height = canvas_height + ‘px‘;
    paper.setSize(canvas_width, canvas_height);
    //paper.clear();
    //paper.rect(10, 10, canvas_width-40, canvas_height-20);
    var k = 0;
    for (var i = 0; i < row_count; i++) {
        if (i % 2 == 0) {
            for (var j = 0; j < row_node_count; j++) {
                if (k == node_count) break;
                nodes[k].shape.attr({cx: j*col_width + col_width/2, cy: i*row_height + row_height/2});
                nodes[k].text.attr({x: j*col_width + col_width/2, y: i*row_height + row_height/2});
                k++;
            }
        } else {
            for (var j = row_node_count-1; j >= 0; j--) {
                if (k == node_count) break;
                nodes[k].shape.attr({cx: j*col_width + col_width/2, cy: i*row_height + row_height/2});
                nodes[k].text.attr({x: j*col_width + col_width/2, y: i*row_height + row_height/2});
                k++;
            }
        }
    }
    setLinks();
}
</script>
</head>
<body>
<div id="canvas">
</div>
</body>
</html>

时间: 2024-10-29 22:01:47

js绘图库raphael实例的相关文章

Python:2D绘图库matplotlib学习总结

本文为学习笔记----总结!大部分为demo,一部分为学习中遇到的问题总结,包括怎么设置标签为中文等.matlab博大精深,需要用的时候再继续吧. Pyplot tutorial Demo地址为:点击打开链接 一个简单的例子: # -*- coding: utf-8 -*- import matplotlib.pyplot as plt plt.plot([1, 4, 9, 16]) plt.ylabel('some numbers') plt.show() 运行结果为: 我只指定了一组list

Google Maps API V3 之绘图库 信息窗口

绘图库 本文档中的概念仅适用于 google.maps.drawing 库中提供的地图项.默认情况下,系统在加载 Maps JavaScript API 时不会加载该库,您必须使用 libraries 引导程序参数进行明确指定. http://maps.googleapis.com/maps/api/js?sensor=false&libraries=drawing DrawingManager 类提供了一个图形界面,以供用户在地图上绘制多边形.矩形.折线.圆形和标记.DrawingManage

python课程设计笔记(三)turtle绘图库(海龟库)

实例:绘制一条蟒蛇 #turtle:绘图库(海龟库) import turtle turtle.setup(650,350,200,200) turtle.penup() turtle.fd(-250) turtle.pendown() turtle.pensize(25) turtle.pencolor("purple") turtle.seth(-40) for i in range(4): turtle.circle(40,80) turtle.circle(-40,80) tu

百度Echartsjs绘图库的使用

百度绘图库,Apache ECharts 是一个正在由 Apache 孵化器赞助的 Apache 开源基金会孵化的项目. https://echarts.apache.org 您可以现在就前往我们的 Apache 官网以获取最新版的网站信息. 主机图形绘制 https://www.cnblogs.com/LyShark/p/12106768.html 中通过调用SocketIO库进行了主机图形绘制,其实Echarts还有很多其他图形绘制功能,这里做个总结,以后直接用. 一个带颜色的折线图: <s

js网址跳转实例代码

js网址跳转实例代码:网址跳转是常用的功能,比如点击一个按钮实现跳转,或者说希望一条新闻打开后可以跳转到其他页面,就可以直接在编辑器中输入跳转代码.下面就简单列举一下js跳转代码,可以根据实际情况选择使用.方式一: window.location.href="http://www.softwhy.com"; 以上代码可以跳转到指定的链接.方式二: window.history.back(-1); 以上代码可以返回之前访问的页面.方式三: self.location="http

DataGridView重绘painting简单实例

private void dataGridViewX1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) { if (e.RowIndex >= 0 && e.ColumnIndex>=0) { Rectangle newRect = new Rectangle(e.CellBounds.X, e.CellBounds.Y, e.CellBounds.Width - 1, e.CellBounds.

js缓冲运动代码实例

js缓冲运动代码实例:元素的缓冲运动效果要比匀速运动更为美观一些,因为显得更为有张力和弹性,当然对于浏览者来说可能会有更好的效果,那么留住用户的可能性也就更大,下面就通过代码实例简单介绍一下如何实现此效果.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www

纯css+js下拉菜单实例代码

纯css+js下拉菜单实例代码 分享一个css+js下拉菜单代码,js+css实现的简单下拉菜单,兼容性不错. 例子:<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <

js中select操作实例

window.onload=function(){ //创建select var select1= document.createElement("select"); select1.id="select1"; for(var i=0;i<5;i++){ //创建option var option=document.createElement("option"); //var option=new option(); option.valu