我在Zigfu的网站上完成了制作用户雷达的初始教程。我无法让这个雷达在canvas元素中工作。
我想在画布中使用绘图方法,所以我不希望它在容器中。
这是我目前直接从教程中获取的代码。非常感谢您的阅读!
function loaded() {
var radardiv = document.getElementById('container');
var radar = {
onuserfound: function (user) {
var userdiv = document.createElement('div');
userdiv.className = 'user';
user.radarelement = userdiv;
radardiv.appendChild(user.radarelement);
},
onuserlost: function (user) {
radardiv.removeChild(user.radarelement);
},
ondataupdate: function (zigdata){
for (var userid in zigdata.users){
var user = zigdata.users[userid];
var pos = user.position;
//console.log(pos);
var el = user.radarelement;
var parentElement = el.parentNode;
var zrange = 2000;
var xrange = 700;
var pixelwidth = parentElement.offsetWidth;
var pixelheight = parentElement.offsetHeight;
var heightscale = pixelheight / zrange;
var widthscale = pixelwidth / xrange;
el.style.left = (((pos[0] / xrange) + 0.5) * pixelwidth - (el.offsetWidth / 2)) + "px";
el.style.top = ((pos[2] / zrange) * pixelheight - (el.offsetHeight / 2)) - 150 + "px";
}
}
};
zig.addListener(radar);
}
document.addEventListener('DOMContentLoaded', loaded, false);
<body>
<div id = 'container'></div>
</body>
</html>
<style>
div#container {
width: 800px;
height: 600px;
border: 1px solid black;
overflow: hidden;
}
div.user {
position: relative;
width: 10px;
height: 10px;
background-color: red;
}
答案 0 :(得分:0)
似乎你错过了javascript周围的标签,以及用户雷达的一些css。此外 - 您的'容器'div缺少&gt;
尝试复制http://zigfu.com/en/zdk/tutorials/底部的代码,或者 - 查看http://zigfu.com/en/zdk/recipes/#omercy16以更清晰地实施用户雷达。
答案 1 :(得分:0)
本教程中使用的雷达使用DOM div放置和定位 不幸的是,这不能在canvas元素中使用。
有一些方法可以覆盖画布和其他变通方法。请参阅:Placing a <div> within a <canvas>
您也可以直接从插件中获取数据并自己绘制到画布。 这是一个使用three.js和zigfu将骨架绘制到画布上的演示: http://blog.kinect.tonkworks.com/post/30569123887/kinect-online-app-javascript-dev-tutorial-1