有沒有辦法改變的汗processing.js模式(PJS)代碼本身。所以你必須轉換價值,正如Ravi Sharma在他的回答中所寫的那樣。
因爲我不想這樣做,用汗原單的程序,因爲他們是在正常processing.js /網絡環境中運行,這就是我所做的:
(這不僅是轉換度弧度,還有鼠標和鍵盤輸入)
var canvas = document.getElementById("canvas");
var processing = new Processing(canvas, function(processing) {
processing.size(400, 400);
processing.background(0,0,0,0);
processing.sbShow = false;
var mouseIsPressed = false;
$(".container").on("mousedown touchstart", function(e) {
mouseIsPressed = true;
processing.mouseX = e.pageX;
processing.mouseY = e.pageY;
processing.sbShow = false;
}).on("mouseup touchend", function(e) {
mouseIsPressed = false;
processing.mouseX = e.pageX;
processing.mouseY = e.pageY;
}).on("mousemove touchmove", function(e) {
processing.mouseX = e.pageX;
processing.mouseY = e.pageY;
});
processing.mousePressed = function() { mouseIsPressed = true; };
processing.mouseReleased = function() { mouseIsPressed = false; };
var keyIsPressed = false;
processing.keyPressed = function() { keyIsPressed = true; };
processing.keyReleased = function() { keyIsPressed = false; };
function getSound(s) {
var url = "sounds/" + s + ".mp3";
return new Audio(url);
}
function playSound(s) {
s.play();
}
function getImage(s) {
var url = "img/" + s + ".png";
//processing.externals.sketch.imageCache.add(url);
return processing.loadImage(url);
}
var rotateFn = processing.rotate;
processing.rotate = function(angle) {
rotateFn(processing.radians(angle));
}
var cosFn = processing.cos;
processing.cos = function(angle) {
return cosFn(processing.radians(angle));
}
var sinFn = processing.sin;
processing.sin = function(angle) {
return sinFn(processing.radians(angle));
}
with (processing) {
///////////////////////////////////////////////////////////////////////////////////////////////////
// Insert original Khan academy pjs code (default is degrees) ...
/////////////////////////////////////////////////////////////////////////////////////////////
};
if (typeof draw !== 'undefined') processing.draw = draw;
});
注意:這是不完整的。有tan,atan,atan2等丟失轉換。
是的。我在with(處理)之前覆蓋了可汗學院函數:var rotateFn = processing.rotate; processing.rotate = function(angle){rotateFn(processing.radians(angle)); }你喜歡完整的代碼? – Michael
我不需要看完整的代碼,但這個問題仍然被標記爲「需要答案」,所以我想與您覈對一下,看看您是否仍然需要幫助。 –
我寫了答案;-) – Michael