// .cpp
QScriptValue random(QScriptContext *context, QScriptEngine *engine)
{
float r = (float) rand()/RAND_MAX;
int len = context->argumentCount();
if(len == 0){
return r;
}
QScriptValue a = context->argument(0);
if(len == 1){
return r * a.toNumber();
}
Q_ASSERT(len < 3);
QScriptValue b = context->argument(1);
return a.toNumber() + (b.toNumber() - a.toNumber()) * r;
}
// .cpp
QScriptValue random(QScriptContext *context, QScriptEngine *engine)
{
float r = (float) rand()/RAND_MAX;
int len = context->argumentCount();
if(len == 0){
return r;
}
QScriptValue a = context->argument(0);
if(len == 1){
return r * a.toNumber();
}
Q_ASSERT(len < 3);
QScriptValue b = context->argument(1);
return a.toNumber() + (b.toNumber() - a.toNumber()) * r;
}
To copy to clipboard, switch view to plain text mode
linked
engine.globalObject().setProperty("random", engine.newFunction(random));
engine.globalObject().setProperty("random", engine.newFunction(random));
To copy to clipboard, switch view to plain text mode
// .js
var m = new Date().getTime();
var num;
for(var i=0; i<100000; i++){
num = random(10,200);
}
println("qt processed in " + (new Date().getTime() - m));
// .js
var m = new Date().getTime();
var num;
for(var i=0; i<100000; i++){
num = random(10,200);
}
println("qt processed in " + (new Date().getTime() - m));
To copy to clipboard, switch view to plain text mode
Cheers, chr
Bookmarks