Can someone please check my Matlab code to rotate a hyperbola and see what I am doing wrong

Please find the attached pdf tutorial for matlab and multilateration.

page 4. Please see code in the codebox below however when run it does not rotate the hyperbola as per the picture on page 4. It is in a different position?

Why is this?

% Program to plot the hyperbola% y^2/a^2 - x^2/b^2 = 1% The hyperbolae are open up/down, so that x is the independent variable% for plotting. (Using the form x^2/a^2 - y^2/b^2 = 1 requires that y be% the independent variable, which is awkward programming-wise.)clear % all variablesfigure(1), hold off % start a new figureset(gca,'FontSize',14) % adjust fontsizexmax = 30; ymax = 20;x = linspace(-xmax,xmax,1001);a = 5; b = 3;theta=60*pi/180; % in radians, 1 radian = 180/pi degreesxoff=10;yoff=5;y=sqrt(((x.^2)./(b^2)+1).*a^2); % corresponding y values[xout,yout] = xfm1(x,y,theta,xoff,yoff); % rotation and shiftplot(xout,yout)hold on % add to current plot[xout,yout] = xfm1(x,-y,theta,xoff,yoff); % rotation and shift of negative partplot(xout,yout) % Plot other half of hyperbolaaxis([-xmax xmax -ymax ymax]) % specify axis limitsxlabel('x')ylabel('y')% Add axesplot([0 0],[-ymax ymax],'k') % y axisplot([-xmax xmax],[0 0],'k') % x axistitle(['Hyperbola $y^2/a^2 - x^2/b^2 = 1$; $a$ = ', num2str(a), ...', $b$ = ', num2str(b),';'],'Interpreter','latex')% Add axesplot([0 0],[-ymax ymax],'k') % y axis (black line - k)plot([-xmax xmax],[0 0],'k') % x axis

I got almost the same figure as on your tutorial with this code without changing anything. I used the same xfm1 function file as we discussed before.
Do you get any figure with this code. If yes, how it's different from what you need? If no, do you get any errors?

yes, I know I must be doing something wrong....
please see the attached with the code run and a screenshot from the tutorial.
It appears to not rotate the same. pic.jpg

"BTW I think you made a wrong rotation matrix. No, it's correct, but rotate in not usual direction. It should be
xfm = [cos(theta) -sin(theta); ...
sin(theta) cos(theta"

=> But it is the same as you can see below;

function [xout,yout] = xfm1(xin,yin,theta,x_offset,y_offset)% Program to rotate and translate x,y values from x",y" to x,y space.% Written to plot hyperbolas for time of arrival code.% theta value assumed to be in radians.% rotation matrixxfm = [cos(theta) -sin(theta); ... sin(theta) cos(theta)];% make x,y values into a column vectorr_in = [xin; yin];% rotate r_out = xfm*r_in;x = r_out(1,:); y = r_out(2,:);xout = x + x_offset; yout = y + y_offset;

Usually positive angles rotate counterwise, negative clockwise. If you want opposite direction, just change both sines signes in rotatino matrix, or use negative angle. Again line along y axis has 0 degree.

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Do you get any figure with this code. If yes, how it's different from what you need? If no, do you get any errors?