Advertisement
Guest User

Untitled

a guest
Apr 25th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. function [] = hermit(p0, p1, r0, r1)
  2. M = [2 -3 0 1; -2 3 0 0; 1 -2 1 0; 1 -1 0 0];
  3. t = [0 : 0.01 : 1];
  4. U = [t.^3; t.^2; t; ones(size(t))];
  5. G = [p0(1) p1(1) r0(1) r1(1); p0(2) p1(2) r0(2) r1(2); p0(3) p1(3) r0(3) r1(3)]
  6.  
  7. Q = G * M * U;
  8.  
  9. plot3(Q(1,:), Q(2, :), Q(3, :));
  10. hold on;
  11. axis equal;
  12. plot3([p0(1) r0(1)], [p0(2) r0(2)], [p0(3) r0(3)]);
  13. plot3([p1(1) r1(1)], [p1(2) r1(2)], [p1(3) r1(3)]);
  14. end
  15.  
  16. function [ret] = bezier(P)
  17. t = [0 : 0.01 : 1];
  18. n = size(P, 1) - 1;
  19.  
  20. X = zeros(size(t));
  21. Y = zeros(size(t));
  22. Z = zeros(size(t));
  23. for k = 0 : size(P) - 1
  24. B = nchoosek(n, k) * t.^k .* (1-t).^(n - k);
  25. Pk = P(k + 1, :);
  26. X = X + B .* Pk(1);
  27. Y = Y + B .* Pk(2);
  28. Y = Y + B .* Pk(3);
  29. plot3(Pk(1), Pk(2), Pk(3), '*');
  30. hold on;
  31. end
  32. ret = [X,Y,Z]
  33.  
  34. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement