mirror of
https://bitbucket.org/Mattrixwv/octavefunctions.git
synced 2025-12-06 10:43:58 -05:00
39 lines
1.4 KiB
Matlab
39 lines
1.4 KiB
Matlab
function [x, y, xNums, yNums] = Hermite(point0, point1, control0, control1)
|
|
%
|
|
%This function returns a function handle to the hermite polynomial for the points given
|
|
%[x, y, xNums, yNums] = Hermite(point0, point1, control0, control1)
|
|
%All of the parameters are [x, y] coordinates
|
|
%x is a function handle for the polynomial for x. x(t)
|
|
%y is a function handle for the polynomial for y. y(t)
|
|
%xNums is an array with the numbers for the x polynomial, starting a t^3 and working down
|
|
%yNums is an array with the numbers for the y polynomial, starting a t^3 and working down
|
|
%
|
|
|
|
xNums = [0, 0, 0, 0];
|
|
yNums = [0, 0, 0, 0];
|
|
a = [(control0(1) - point0(1)), (point1(1) - control1(1))];
|
|
b = [(control0(2) - point0(2)), (point1(2) - control1(2))];
|
|
|
|
%t^3 number
|
|
xNums(1) = (2 * (point0(1) - point1(1))) + (a(1) + a(2));
|
|
%t^2 number
|
|
xNums(2) = (3 * (point1(1) - point0(1))) - (a(2) + (2 * a(1)));
|
|
%t number
|
|
xNums(3) = (a(1));
|
|
%constant
|
|
xNums(4) = point0(1);
|
|
%Function handle
|
|
x = @(t) (xNums(1) * t.^3) + (xNums(2) * t.^2) + (xNums(3) * t) + xNums(4);
|
|
|
|
%The t^3 number
|
|
yNums(1) = (2 * (point0(2) - point1(2))) + (b(1) + b(2));
|
|
%The t^2 number
|
|
yNums(2) = (3 * (point1(2) - point0(2))) - (b(2) + (2 * b(1)));
|
|
%The t number
|
|
yNums(3) = (b(1));
|
|
%The constant
|
|
yNums(4) = point0(2);
|
|
%Function handle
|
|
y = @(t) (yNums(1) * t.^3) + (yNums(2) * t.^2) + (yNums(3) * t) + yNums(4);
|
|
end
|