quartic equation

This commit is contained in:
kekee000
2014-09-05 20:14:59 +08:00
parent 51e90c8f32
commit 230f1470cd
6 changed files with 145 additions and 46 deletions

View File

@@ -13,9 +13,9 @@ define(
var cubeEquation = require('math/cubeEquation');
var quarticEquation = require('math/quarticEquation');
var bezierQuadraticEquation = require('math/bezierQuadraticEquation');
var bezierQ2Equation = require('math/bezierQ2Equation');
var bezierCubeEquation = require('math/bezierCubeEquation');
var bezierQuarticEquation = require('math/bezierQuarticEquation');
var bezierQ4Equation = require('math/bezierQ4Equation');
var entry = {
@@ -26,10 +26,10 @@ define(
console.log(quadraticEquation(1, 0, 1));
console.log(bezierQuadraticEquation(1, 0, 1));
console.log(bezierQ2Equation(1, 0, 1));
console.log('--------------------------------');
console.log(quadraticEquation(1, -2, 1));
console.log(bezierQuadraticEquation(1, -2, 1));
console.log(bezierQ2Equation(1, -2, 1));
console.log('--------------------------------');
@@ -46,10 +46,10 @@ define(
console.log(quarticEquation(1, 0, 0, 0, 1));
console.log(bezierQuarticEquation(1, 0, 0, 0, 1));
console.log(bezierQ4Equation(1, 0, 0, 0, 1));
console.log('--------------------------------');
console.log(quarticEquation(1, 0, 0, 0, -1));
console.log(bezierQuarticEquation(1, 0, 0, 0, -1));
console.log(bezierQ4Equation(1, 0, 0, 0, -1));

View File

@@ -9,7 +9,7 @@
define(
function(require) {
var isBezierRayCross = require('graphics/isBezierRayCross');
var isBezierCross = require('graphics/isBezierCross');
var entry = {
@@ -22,19 +22,6 @@ define(
var width = canvas.offsetWidth;
var height = canvas.offsetHeight;
// var points = [];
// [0, 1, 2, 3].forEach(function(i) {
// var p = {
// x: Math.floor(Math.random() * (width - 100) + 50),
// y: Math.floor(Math.random() * (height - 100) + 50)
// }
// points[i] = p;
// $($('.point').get(i)).css({
// left: p.x,
// top: p.y
// });
// });
var points = [
{
x: 130,
@@ -117,13 +104,25 @@ define(
ctx.quadraticCurveTo(points[4].x, points[4].y, points[5].x, points[5].y);
ctx.lineWidth = 1;
ctx.stroke();
//console.time('bezier');
var r = isBezierCross.apply(null, points);
//console.timeEnd('bezier');
//console.log(r);
if(r) {
ctx.beginPath();
r.forEach(function(item) {
ctx.arc(item.x, item.y, 4, 0, Math.PI * 2, true);
});
ctx.fill();
}
}
draw();
//var points = [{"x":79,"y":156},{"x":314,"y":227},{"x":74,"y":287},{"x":159,"y":116},{"x":32,"y":256},{"x":303,"y":290}];
//console.log(isBezierCross.apply(null, points));
}
};