我有這個腳本,我正在使用oCanvas JS Library(http://ocanvas.org/)創建一個HTML5畫布並在畫布中顯示多個對象。目前,我已經從外部XML文檔中讀取腳本,並遍歷每個項目節點並在畫布上創建一個圓形對象。HTML5畫布:碰撞檢測問題
我在嘗試將這些對象放在與中間圓圈(以下代碼中的徽標變量)均勻間隔的畫布上存在問題。
// GLOBALS
var xmlData = '<?xml version="1.0" encoding="UTF-8"?><root name="CompanyName"><projects><project name="Project1"></project><project name="Project2"></project></projects></root>'
var xmlObj = []
// var angle = (360 * Math.PI)/180
var padding = 15
var canvas = oCanvas.create({
canvas: '#myCanvas'
})
var c_width = canvas.width
var c_height = canvas.height
var logo = canvas.display.ellipse({
x: c_width/2,
y: c_height/3,
radius: 80,
fill: '#d15851'
})
canvas.addChild(logo)
// var getXML = function(file){
// $.ajax({
// url: file,
// type: 'GET',
// dataType: 'xml',
// async: false,
// success: parseXML
// })
// }
var parseXML = function() {
var xmlDoc = $.parseXML(xmlData)
var xml = $(xmlDoc)
xml.find('project').each(function(i){
xmlObj[i] = canvas.display.ellipse({
fill: '#'+'abcdef'.split('').map(function(v,i,a){
return i>5 ? null : a[Math.floor(Math.random()*16)] }).join(''),
radius: 40,
opacity: 1
})
});
var angleSingleton = {
"currentAngle": 0,
"currentOffset": 0,
"incrementAngle": function() {
this.currentAngle = this.currentAngle + this.currentOffset
}
}
angleSingleton.currentOffset = Math.floor((360 * Math.PI)/xmlObj.length);
for(h = 0; h < xmlObj.length; h++) {
xmlObj[h].x = (logo.x + logo.radius * Math.cos(angleSingleton.currentAngle)) + xmlObj[h].radius + padding;
xmlObj[h].y = (logo.y + logo.radius * Math.sin(angleSingleton.currentAngle)) + xmlObj[h].radius + padding;
canvas.addChild(xmlObj[h])
angleSingleton.incrementAngle()
}
}
//
$(document).ready(function(){
parseXML()
})
不失樣本數據就沒有辦法運行的程序,小心地告訴我們您所遇到的問題,並提供一些示例數據? –
是的,我現在包含一個示例XML ...我在畫布中間有一個居中圓圈......它只是爲其他圓圈繪製點(x/y座標)......現在它們是相互重疊。 – dennismonsewicz
所以你只是想知道如何獲得圍繞主要圈子的圈子的積分? –