How to plot three points with Y axis and angle A ? for rotary axis machine.

조회 수: 1 (최근 30일)
Pradhap
Pradhap 2023년 8월 8일
답변: Paras Gupta 2023년 8월 22일
I'm looking for answer to find centre of circle with three reference points. that is Y - axis and Angle A.
here my refernce points (y1,a1) = (-76.890,6.415); (y2,a2)=(-117.456,9.253);(y3,a3)=(-109.875,-12.304)

답변 (1개)

Paras Gupta
Paras Gupta 2023년 8월 22일
Greetings,
I understand that you want to find the centre of a circle from three given reference points defined by their y-coordinate and the angle from the y-axis.
The cartesian x-coordinate of the reference points can be computed by multiplying the tangent of the given angle with the given y-coordinate.
% Point 1
y1 = -76.890;
a1 = 6.415;
x1 = y1 * tand(a1);
% Point 2
y2 = -117.456;
a2 = 9.253;
x2 = y2 * tand(a2);
% Point 3
y3 = -109.875;
a3 = -12.304;
x3 = y3 * tand(a3);
The following code can then be used to find the center of the circle passing through these three points.
x = [x1, x2, x3]; % x-coordinates of the points
y = [y1, y2, y3]; % y-coordinates of the points
% Calculate the center of the circle
% Let the centre of the circle be (cx, cy) and its radius be r
% (x1 - cx)^2 + (y1 - cy)^2 = r^2
% (x2 - cx)^2 + (y2 - cy)^2 = r^2
% (x3 - cx)^2 + (y3 - cy)^2 = r^2
% The above three equations can be reduced to the following two equations:
% (x1 - x2) * cx + (y1 - y2) * cy = 0.5 * (x1^2 - x2^2 + y1^2 - y2^2)
% (x2 - x3) * cx + (y2 - y3) * cy = 0.5 * (x2^2 - x3^2 + y2^2 - y3^2)
% This system of equations can be represented by A * center = B, that gives center = A/B
A = [x(1)-x(2), y(1)-y(2); x(2)-x(3), y(2)-y(3)];
B = [0.5*(x(1)^2-x(2)^2+y(1)^2-y(2)^2); 0.5*(x(2)^2-x(3)^2+y(2)^2-y(3)^2)];
center = A\B
center = 2×1
0.1525 -100.8044
% Calculate the radius of the circle
r = sqrt((x(1)-center(1))^2 + (y(1)-center(2))^2);
% We can also plot the circle with points and center
theta = linspace(0, 2*pi, 100);
circle_x = center(1) + r*cos(theta);
circle_y = center(2) + r*sin(theta);
figure;
hold on;
plot(x, y, 'ro', 'MarkerSize', 8); % Plot the points
plot(center(1), center(2), 'b+', 'MarkerSize', 10); % Plot the center
plot(circle_x, circle_y, 'g-'); % Plot the circle
axis equal;
grid on;
legend('Points', 'Center', 'Circle');
Please refer to the documentations given below for more information on the functions used in thecode:
Hope this helps.

카테고리

Help CenterFile Exchange에서 Line Plots에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by