Mercurial > repos > public > sbplib
diff +parametrization/Curve.m @ 425:e56dbd9e4196 feature/grids
Merge feature/beams
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Tue, 07 Feb 2017 16:09:02 +0100 |
parents | 0fd4b259af9e |
children | 0776fa4754ff |
line wrap: on
line diff
--- a/+parametrization/Curve.m Tue Feb 07 15:47:51 2017 +0100 +++ b/+parametrization/Curve.m Tue Feb 07 16:09:02 2017 +0100 @@ -24,7 +24,7 @@ if ~isempty(transformation) transformation.base_g = g; transformation.base_gp = gp; - [g,gp] = grid.Curve.transform_g(g,gp,transformation); + [g,gp] = parametrization.Curve.transform_g(g,gp,transformation); end obj.g = g; @@ -68,17 +68,21 @@ end function h= show(obj,name) + default_arg('name', '') p = obj.g(1/2); n = obj.normal(1/2); p = p + n*0.1; % Add arrow - h = text(p(1),p(2),name); - h.HorizontalAlignment = 'center'; - h.VerticalAlignment = 'middle'; - obj.plot(); + if ~isempty(name) + h = text(p(1),p(2),name); + h.HorizontalAlignment = 'center'; + h.VerticalAlignment = 'middle'; + end + + h = obj.plot(); end % Shows curve with name and arrow for direction. @@ -106,7 +110,7 @@ % New function and derivative g_new = @(t)obj.g(arcPar(t)); gp_new = @(t) normalize(obj.gp(arcPar(t))); - curve = grid.Curve(g_new,gp_new); + curve = parametrization.Curve(g_new,gp_new); end @@ -131,7 +135,7 @@ function D = reverse(C) % g = C.g; % gp = C.gp; - % D = grid.Curve(@(t)g(1-t),@(t)-gp(1-t)); + % D = parametrization.Curve(@(t)g(1-t),@(t)-gp(1-t)); D = C.transform([],[],-1); end @@ -157,7 +161,7 @@ transformation.flip = flip*flip_old; end - D = grid.Curve(g,gp,transformation); + D = parametrization.Curve(g,gp,transformation); end @@ -171,7 +175,7 @@ % v(2,:) = x(2,:)+a(2); % end - % D = grid.Curve(@g_fun,gp); + % D = parametrization.Curve(@g_fun,gp); D = C.transform([],a); end @@ -206,7 +210,7 @@ % v = A*gp(t); % end - % D = grid.Curve(@g_fun,@gp_fun); + % D = parametrization.Curve(@g_fun,@gp_fun); % g = A(g-a)+a = Ag - Aa + a; b = - A*a + a; @@ -237,7 +241,7 @@ % v = A*gp(t); % end - % D = grid.Curve(@g_fun,@gp_fun); + % D = parametrization.Curve(@g_fun,@gp_fun); % g = A(g-a)+a = Ag - Aa + a; @@ -266,9 +270,13 @@ v(1,:) = p1(1) + t.*(p2(1)-p1(1)); v(2,:) = p1(2) + t.*(p2(2)-p1(2)); end - g = @g_fun; - obj = grid.Curve(g); + function v = g_fun_deriv(t) + v(1,:) = t.*0 + (p2(1)-p1(1)); + v(2,:) = t.*0 + (p2(2)-p1(2)); + end + + obj = parametrization.Curve(@g_fun, @g_fun_deriv); end function obj = circle(c,r,phi) @@ -288,7 +296,7 @@ v(2,:) = (phi(2)-phi(1))*r*cos(w); end - obj = grid.Curve(@g_fun,@g_fun_deriv); + obj = parametrization.Curve(@g_fun,@g_fun_deriv); end function obj = bezier(p0, p1, p2, p3) @@ -302,7 +310,7 @@ v(2,:) = 3*(1-t).^2*(p1(2)-p0(2)) + 6*(1-t).*t*(p2(2)-p1(2)) + 3*t.^2*(p3(2)-p2(2)); end - obj = grid.Curve(@g_fun,@g_fun_deriv); + obj = parametrization.Curve(@g_fun,@g_fun_deriv); end