Нарисуйте равнобедренный треугольник под определенным углом в центре - PullRequest
0 голосов
/ 06 января 2019

Я пытаюсь получить 2D координаты для 3 вершин равнобедренного треугольника, обращенного к определенному углу.

Я знаю координаты центра треугольника и нарисовал окружность радиуса r вокруг этой точки, которую, как я полагаю, следует использовать для определения вершин треугольника.

(я пытаюсь сделать это в c #, но язык на самом деле не имеет значения)

1 Ответ

0 голосов
/ 07 января 2019

Нам нужно добавить немного вкуса геометрии здесь! Я предполагаю, что под центром треугольника вы подразумеваете центр вписанного круга внутри этого треугольника. Также данный угол является углом вершины, который составляет от 0 до 180 градусов. Учитывая радиус и координаты центра круга и угол наклона, следующая функция выполнит работу в MATLAB :

function output=circle2tri(radius,coordinates,apex_theta)
%% 
% radius = radius of the inscribed circle. 1*1 scalar
% coordinates = coordinates of the center of the inscribed circle. 1*n vec
% apex_theta = (self-explaining!) the theta of the apex. 1*1 scalar

%% checking for valid values of apex_theta
if apex_theta>180 || apex_theta<=0
   error('Invalid apex_theta in circle2tri')
end

%% calculating the coordinates of the isosceles triangle
y=radius/tan(apex_theta);
x=radius+radius^2/y;
output=[x -x 0;-radius -radius y];
output=output+coordinates';
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...