jsartoolkit5 - ARToolkit.jsphp
Talkingdata - 用數據的心智去超越html
three.js 系列教程 - 良心之做
git
JSARToolKit 支持多種標記github
var video = document.querySelector('video');
var ar = new ARController(video.videoWidth, video.videoHeight, 'Data/camera_para.dat');
ar.onload = function() {
var markerId;
// Load pattern marker.
//
ar.loadMarker('Data/patt.hiro', function(marker) {
markerId = marker;
});
ar.addEventListener('getMarker', function(ev) {
if (ev.data.marker.idPatt === markerId) {
console.log('saw marker', ev.data.marker);
console.log('transformation matrix', ar.getTransformationMatrix());
}
});
console.log('camera matrix', ar.getCameraMatrix());
setInterval(function() {
ar.process(video);
}, 33);
};複製代碼
arController.setPatternDetectionMode( artoolkit.AR_MATRIX_CODE_DETECTION );
arController.addEventListener('getMarker', function(ev) {
console.log('saw barcode marker', ev.data.marker.idMatrix);
});複製代碼
arController.setPatternDetectionMode( artoolkit.AR_TEMPLATE_MATCHING_COLOR_AND_MATRIX );
arController.addEventListener('getMarker', function(ev) {
if (ev.data.marker.idMatrix !== -1) {
console.log('saw barcode marker', ev.data.marker.idMatrix);
}
if (ev.data.marker.idPatt !== -1) {
console.log('saw pattern marker', ev.data.marker.idPatt);
}
});複製代碼
var markerId;
var markerCount = 0;
// Load multimarker.
//
arController.loadMultiMarker('Data/multi-barcode-4x3.dat', function(marker, subMarkerCount) {
markerId = marker;
markerCount = subMarkerCount;
});
arController.addEventListener('getMultiMarker', function(ev) {
if (ev.data.multiMarkerId === markerId) {
console.log('saw multimarker', ev.data.multiMarkerId);
console.log('transformation matrix', arController.getTransformationMatrix());
}
});
arController.addEventListener('getMultiMarkerSub', function(ev) {
if (ev.data.multiMarkerId === markerId) {
console.log('saw submarker', ev.data.markerId, ev.data.marker);
}
});
複製代碼