Tracing an arc on circumfrence of quarter circle

As per the given problem I have to place the arc on the circumfrence of quarter circle in the best possible way.....
Radius of Quarter curcle=55
Radius of arc= 9 and arc angle=60
The objective of the problem is that the arc bottom point should touch the green line as shown in figure. The quarter circle is divided into equal section of gap 'a'. we need to put the arc center in each zone in best way such that arc traces the quarter circle in best way as shown.
Data can be changed if desired.....
This problem required calculus to find best position of diffrent arc center
Arc radius=9 and arc angle=60 degrees. ( we only need to adjust the arc centeres x cordinate for all arcs)
All the arcs are identical and even there orientation are same and the arcs cannot be rotated.
a=55/6
b1 (given)=4.55
b2=b1+ 1*(a) = 4.55 +1* (55/6)
b3=b1+2*(a) = 4.55 + 2*(55/6)
b4=b1+3*(a) = 4.55 +3 *(55/6)
b5=b1+4*(a) = 4.55 +4 *(55/6)
b6=b1+5*(a) = 4.55 + 5*(55/6)

6 Comments

Is it possible to rotate arc?
no arc should not rotated....( In figure it appears that arcs have been rotated but actually for this problem I donot want the arc to be rotated)
The orientation of arc should remain the same for all
Even if it dosent exactly appear to trace the curve , we still need to place the arc center in best possible way so that certain objective function can be minimised.
maybe we can use least square fit.....
all arcs have same dimension and orientation
Can you attach sample data?
.
I have modified the queston giving more data so you need not assume anything
Now all datas have been provided.
Position angle of each arc is the same? Or do you have data for them?
all position angle are same....60 degree such that arc will touch the bottom line and all the bottom lines and y coordinate of arc centers are defined

Sign in to comment.

 Accepted Answer

Solution:
I used fsolve to find: RedArea - BlueArea = 0
See script

7 Comments

function main
clc,clear
r = 10; % arc length
R = 55; % radius of a circle
a = 60*pi/180; % arc angle
ap = 45*pi/180; % arc position angle
y0 = 40; % height of arc center
t = linspace(0,pi/2);
[x,y] = pol2cart(t,R); % circle data
t = linspace(0,a)-a/2+ap;
[x1,y1] = pol2cart(t,r); % arc data
x0 = sqrt(R^2-y0^2); % initial guess for x0
x0 = fsolve(@(x)arcoptim(x,y0,x1,y1,R),x0);
plot(x,y)
hold on
plot(x1+x0,y1+y0,'r')
hold off
axis equal
end
function A = arcoptim(x0,y0,x1,y1,R)
x = x1 + x0;
y = y1 + y0;
Sa = polyarea([x 0],[y 0]);
aa = atan2(y(1),x(1))-atan2(y(end),x(end));
aa = abs(aa);
Sc = aa/2*R^2;
A = Sa-Sc;
end
Thanks Darova for the above code.
1) But can any modifications be done on this such that I can get values of the cordinate of arc center (espceially its distance from x axis)
2) Any modifications possble so that I get it to apply it on 6 arcs as per image given in question. I would be needing the optimised distance from x axis for each 6 arcs.
(Kindly look into it if it is not inconvinient for you)
Thanks in advance.....
1) But can any modifications be done on this such that I can get values of the cordinate of arc center (espceially its distance from x axis)
2) Any modifications possble so that I get it to apply it on 6 arcs as per image given in question. I would be needing the optimised distance from x axis for each 6 arcs.
Do you know how for loop works?
Thanks darova I will try the for loop myself and let you know if I get it wrong.
Thanks for the help.
In the given code can you explain the meaning of arc position angle
clc,clear
r = 10; % arc length
R = 55; % radius of a circle
a = 60*pi/180; % arc angle
ap = 45*pi/180; % arc position angle
y0 = 40; % height of arc center
Save arcoptim function in separate file. Use main function as a script
r = 10;
R = ...
% code
And separate file with name arcoptim.m
function A = arcoptim(x0,y0,x1,y1,R)
% code

Sign in to comment.

More Answers (0)

Categories

Asked:

on 25 Mar 2020

Commented:

on 19 May 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!