Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I have created a MATLAB function to display a fibonacci spiral but i can't figure out the sequence for shifting in x and y, i

I have created a MATLAB function to display a fibonacci spiral but i can't figure out the sequence for shifting in x and y, i attempted as shown in the bold text about 20 lines down.

There is a subfunction at the bottom that rotates scales and shifts each arch but i can't figure out the input for the x any y shifting. HELP PLEASE

function fibonacci = _project1(n)

% Define parameters of the arc.

xCenter = 0; % the origin for the spiral starts at (0,0)

yCenter = 0;

radius = 1;

% Define the angle theta as going from 0 to 90 degrees in 100 steps.

theta = linspace(0,90, 100);

% Define x and y using "Degrees" version of sin and cos.

x = radius * cosd(theta) + xCenter;

y = radius * sind(theta) + yCenter;

XY = [x;y]; % putting x and y into XY matrix

plot(x, y, 'b-', 'LineWidth', 2);

hold on

XY=_project1sub(XY,1,90,0,0);% sub program from part 1 of project

plot(XY(1,:),XY(2,:), 'b-', 'LineWidth', 2);

hold on

fib = [1 1];

% for loop to shift x coordinates and use this for callout in main for loop

for j = 1:n

j=(j-1)-1;

end

% for loop to shift x coordinates and use this for callout in main for loop

for k = 1:n

k=(k-2)-1;

end

for i = 3:n % loop that defines fibonacci sequence using n

fib(i)= fib(i-1) + fib(i-2); % fibonacci sequence

XY=_project1sub(XY,fib(i),90,j,k);

plot(XY(1,:),XY(2,:), 'b-', 'LineWidth', 2);% Now plot the points.

end

axis equal;

end

%------------------------------------------------------------------------

% Subfunction from part 1

% XY is a (2xn) matrix of coordinates

% sF is the scaling factor to make the plot larger or smaller

% r is the rotation angle, amount to rotate the object

% shiftx determines how many units to move in the x axis

% shifty determines how many units to move in the y axis

%-------------------------------------------------------------------------

function XYnew = _project1sub(XY,sF,r,shiftx,shifty)

ROT=[cosd(r) -sind(r);sind(r) cosd(r)];% Rotation matrix

XYnew = ROT * XY; % this line rotates the variables

XYnew = sF * XYnew; % this lines scales the coordinates

XYnew(1,:)=XYnew(1,:) + shiftx; % shifts the first row in the x axis

XYnew(2,:)=XYnew(2,:) + shifty; % shifts the second row in the y axis

end

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Ehs 2.0 Revolutionizing The Future Of Safety With Digital Technology

Authors: Tony Mudd

1st Edition

B0CN69B3HW, 979-8867463663

More Books

Students also viewed these Databases questions

Question

Explain the various methods of job evaluation

Answered: 1 week ago

Question

Differentiate Personnel Management and Human Resource Management

Answered: 1 week ago

Question

Describe the functions of Human resource management

Answered: 1 week ago