canvas实现自组织映射Self-organizing Map聚类算法可视化过程代码
代码语言:html
所属分类:其他
代码描述:canvas实现自组织映射Self-organizing Map聚类算法可视化过程代码
代码标签: 组织 映射 Self-organizing Map 聚类 算法 可视化 过程
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!doctype html>
<html lang="en-us">
<head>
<meta charset="utf-8">
</head>
<body>
<div class="center">
<article>
<div class="social">
</div>
<h1 class="title">Self-Organizing Map</h1>
<div class="content">
<div>
<p>A visualization of a <a href="http://en.wikipedia.org/wiki/Self-organizing_map">Self-Organizing Map</a>.</p>
<style>
.post {
max-width: none;
width: 640px;
padding: 0;
}
</style>
<div>
<button onclick="doStep()">Step</button>
<button onclick="run()">Run</button>
<button onclick="stop()">Stop</button>
<button onclick="reset()">Reset</button>
</div>
<div style="margin-bottom:20px;">
<input id="data" value="200"></input>
<input id="nodes" value="50"></input>
<input id="range" value="10"></input>
</div>
<p><canvas id="canvas"></canvas></p>
<script>
var size = {x: 640, y:480};
var canvas = document.getElementById("canvas");
canvas.width = size.x;
canvas.height = size.y;
var TAU = Math.PI*2;
var draw = canvas.getContext("2d");
var stepInterval = 0;
var state = {
data : [],
nodes : [],
buckets : [],
lastData : 0,
lastNodes: 0,
rate : 1.0,
range: 10,
tick : 0 };
function clone(obj){
var res = {};
for(var i in obj)
if(typeof(obj[i]) == "object")
res[i] = clone(obj[i])
else
res[i] = obj[i];
return res;
}
function stop(){
clearInterval(stepInterval);
}
function inputValue(inp){
return parseInt(document.getElementById(inp).value);
}
function reset(){
state.tick = 0;
state.rate = 1;
state.data = generateData(inputValue("data"), 3, 255);
state.nodes = generateData(inputValue("nodes"), 3, 255);
state.range = inputValue("range");
recalcBuckets();
render(state);
}
function run(){
stop.........完整代码请登录后点击上方下载按钮下载查看
网友评论0