mirror of
https://github.com/scratchfoundation/paper.js.git
synced 2025-01-01 02:38:43 -05:00
119 lines
2.8 KiB
JavaScript
119 lines
2.8 KiB
JavaScript
/*
|
|
* Paper.js - The Swiss Army Knife of Vector Graphics Scripting.
|
|
* http://paperjs.org/
|
|
*
|
|
* Copyright (c) 2011 - 2013, Juerg Lehni & Jonathan Puckey
|
|
* http://lehni.org/ & http://jonathanpuckey.com/
|
|
*
|
|
* Distributed under the MIT license. See LICENSE file for details.
|
|
*
|
|
* All rights reserved.
|
|
*/
|
|
|
|
module('Curve');
|
|
|
|
test('Curve#getPointAt()', function() {
|
|
var curve = new Path.Circle({
|
|
center: [100, 100],
|
|
radius: 100
|
|
}).getFirstCurve();
|
|
|
|
var points = [
|
|
[0, new Point(0, 100)],
|
|
[0.25, new Point(7.8585, 61.07549)],
|
|
[0.5, new Point(29.28932, 29.28932)],
|
|
[0.75, new Point(61.07549, 7.8585)],
|
|
[1, new Point(100, 0)]
|
|
];
|
|
|
|
for (var i = 0; i < points.length; i++) {
|
|
var entry = points[i];
|
|
comparePoints(curve.getPointAt(entry[0], true), entry[1],
|
|
'curve.getPointAt(' + entry[0] + ', true);');
|
|
}
|
|
});
|
|
|
|
test('Curve#getTangentAt()', function() {
|
|
var curve = new Path.Circle({
|
|
center: [100, 100],
|
|
radius: 100
|
|
}).getFirstCurve();
|
|
|
|
var tangents = [
|
|
[0, new Point(0, -165.68542 )],
|
|
[0.25, new Point(60.7233, -143.56602)],
|
|
[0.5, new Point(108.57864, -108.57864)],
|
|
[0.75, new Point(143.56602, -60.7233)],
|
|
[1, new Point(165.68542, 0)]
|
|
];
|
|
|
|
for (var i = 0; i < tangents.length; i++) {
|
|
var entry = tangents[i];
|
|
comparePoints(curve.getTangentAt(entry[0], true), entry[1],
|
|
'curve.getTangentAt(' + entry[0] + ', true);');
|
|
}
|
|
});
|
|
|
|
test('Curve#getNormalAt()', function() {
|
|
var curve = new Path.Circle({
|
|
center: [100, 100],
|
|
radius: 100
|
|
}).getFirstCurve();
|
|
|
|
var normals = [
|
|
[0, new Point(-165.68542, 0)],
|
|
[0.25, new Point(-143.56602, -60.7233)],
|
|
[0.5, new Point(-108.57864, -108.57864)],
|
|
[0.75, new Point(-60.7233, -143.56602)],
|
|
[1, new Point(0, -165.68542)]
|
|
];
|
|
|
|
for (var i = 0; i < normals.length; i++) {
|
|
var entry = normals[i];
|
|
comparePoints(curve.getNormalAt(entry[0], true), entry[1],
|
|
'curve.getNormalAt(' + entry[0] + ', true);');
|
|
}
|
|
});
|
|
|
|
test('Curve#getCurvatureAt()', function() {
|
|
var curve = new Path.Circle({
|
|
center: [100, 100],
|
|
radius: 100
|
|
}).getFirstCurve();
|
|
|
|
var curvatures = [
|
|
[0, 0.009785533905932729],
|
|
[0.25, 0.010062133221584524],
|
|
[0.5, 0.009937576453041297],
|
|
[0.75, 0.010062133221584524],
|
|
[1, 0.009785533905932727]
|
|
];
|
|
|
|
for (var i = 0; i < curvatures.length; i++) {
|
|
var entry = curvatures[i];
|
|
compareNumbers(curve.getCurvatureAt(entry[0], true), entry[1],
|
|
'curve.getCurvatureAt(' + entry[0] + ', true);');
|
|
}
|
|
});
|
|
|
|
|
|
test('Curve#getCurvatureAt()', function() {
|
|
var curve = new Path.Line({
|
|
from: [100, 100],
|
|
to: [200, 200],
|
|
}).getFirstCurve();
|
|
|
|
var curvatures = [
|
|
[0, 0],
|
|
[0.25, 0],
|
|
[0.5, 0],
|
|
[0.75, 0],
|
|
[1, 0]
|
|
];
|
|
|
|
for (var i = 0; i < curvatures.length; i++) {
|
|
var entry = curvatures[i];
|
|
compareNumbers(curve.getCurvatureAt(entry[0], true), entry[1],
|
|
'curve.getCurvatureAt(' + entry[0] + ', true);');
|
|
}
|
|
});
|