2011-02-26 17:26:54 +01:00
|
|
|
module('Path Length');
|
|
|
|
|
|
|
|
test('path.length', function() {
|
2011-03-03 17:23:27 +00:00
|
|
|
var doc = new Document();
|
2011-02-26 17:26:54 +01:00
|
|
|
var path = new Path([
|
|
|
|
new Segment(new Point(121, 334), new Point(-19, 38), new Point(30.7666015625, -61.53369140625)),
|
|
|
|
new Segment(new Point(248, 320), new Point(-42, -74), new Point(42, 74))
|
|
|
|
]);
|
2011-03-07 00:01:16 +00:00
|
|
|
var t = Date.now(), c = 1000;
|
|
|
|
for (var i = 0; i < c; i++) {
|
|
|
|
var length = path.length;
|
|
|
|
}
|
|
|
|
window.console.log(Date.now() - t, length);
|
2011-03-07 02:29:17 +00:00
|
|
|
// ai: 172.10122680664062
|
|
|
|
// 8: 172.10094440399325
|
|
|
|
// 7: 172.10190407418446
|
|
|
|
// 6: 172.09823801587845
|
|
|
|
// 5: 172.1100076851322
|
2011-03-07 00:01:16 +00:00
|
|
|
compareNumbers(length, 172.10122680664062);
|
|
|
|
|
2011-04-26 12:34:27 +01:00
|
|
|
var curve = path.curves[0];
|
2011-03-07 00:01:16 +00:00
|
|
|
var t = Date.now(), c = 1000;
|
|
|
|
for (var i = 0; i < c; i++) {
|
2011-04-26 12:34:27 +01:00
|
|
|
var param = curve.getParameter(length / 4);
|
2011-03-07 00:01:16 +00:00
|
|
|
}
|
|
|
|
window.console.log(Date.now() - t, param);
|
2011-04-26 12:34:27 +01:00
|
|
|
|
|
|
|
var param = curve.getParameter(length / 4);
|
2011-03-07 02:29:17 +00:00
|
|
|
// ai: 0.2255849553116685
|
|
|
|
// 8: 0.22558507711602457
|
|
|
|
// 5: 0.22558507714028128
|
|
|
|
// 4: 0.22558508917324532
|
|
|
|
compareNumbers(param, 0.2255849553116685);
|
2011-02-26 17:26:54 +01:00
|
|
|
});
|
2011-04-11 18:58:32 +02:00
|
|
|
|
|
|
|
test('curve.getParameter with straight curve', function() {
|
|
|
|
var doc = new Document();
|
|
|
|
var path = new Path();
|
|
|
|
path.moveTo(100, 100);
|
|
|
|
path.lineTo(500, 500);
|
|
|
|
var curve = path.curves[0];
|
|
|
|
var length = curve.length;
|
|
|
|
var t = curve.getParameter(length / 3);
|
|
|
|
compareNumbers(t, 0.3869631475722452);
|
|
|
|
});
|