Форум программистов, компьютерный форум, киберфорум
Геометрия
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/47: Рейтинг темы: голосов - 47, средняя оценка - 4.91
19 / 17 / 6
Регистрация: 09.01.2014
Сообщений: 351

Вычислить координаты третьей вершины треугольника по длине основания и прилежащим углам

12.11.2017, 03:50. Показов 10347. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Исходные данные:
Есть система координат xoy. В этой системе координат абсолютно произвольным образом ставят 3 точки (A,В,C). Эти точки образуют треугольник. Известна длина основания AB этого треугольника, а также можно рассчитать градусные меры прилежащих углов.
Кликните здесь для просмотра всего текста
Изначально взаимное положение точек определяется пеленгами (углами, отложенными до необходимой прямой строго по часовой стрелке от вертикальной линии, опущенной в точку) (см. рис. 2)

Необходимо вывести формулу, позволяющую однозначно установить координаты точки С в системе хоу для любого возможного положения точек А,В и С (рис. 3).

Треугольник я решаю(нахожу все стороны и углы) по теореме синусов и никаких проблем не возникает, но когда дело доходит до получения координаты - я никак не могу найти универсальный подход. Самое лучшее к чему я пришел - ввод новой СК, сонаправленной с исходной СК, но повернутой на некоторый угол, но такой подход не подходит для всех возможных случаев.
Еще пробовал составить 2 уравнения длины стороны треугольника и решить систему (см. ниже) - маткад сказал " слишком длинный символьный результат", а для меня очень критично именно получить формулу.
https://www.cyberforum.ru/cgi-bin/latex.cgi?b = \sqrt{{(xc-xa)}^{2}+{(yc-ya)}^{2}}\\c = \sqrt{{(xc-xb)}^{2}+{(yc-yb)}^{2}}

Подскажите пожалуйста - есть какой-нибудь простой способ?

Спасибо.
Миниатюры
Вычислить координаты третьей вершины треугольника по длине основания и прилежащим углам   Вычислить координаты третьей вершины треугольника по длине основания и прилежащим углам   Вычислить координаты третьей вершины треугольника по длине основания и прилежащим углам  

0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.11.2017, 03:50
Ответы с готовыми решениями:

Процедура нахождения по заданным длине стороны треугольника и прилежащим углам длин остальных сторон
Описать процедуру нахождения по заданной длине стороны треугольника и величинам двух прилежащих углов длин остальных сторон треугольника и...

Как найти координаты третьей вершины треугольника, зная все стороны и две вершины?
Добрый день, подскажите как найти координаты третьей вершины треугольника? Известны координаты точек А(x1,y1), С(x2,y2). длины сторон...

Вычислить площадь S треугольника по одной стороне "а" и прилежащим к ней углам
Вычислить площадь S треугольника по одной стороне "а" и прилежащим к ней углам "альфа" и "бета", при этом углы можно...

11
Эксперт по математике/физике
11077 / 7377 / 3991
Регистрация: 14.01.2014
Сообщений: 16,813
12.11.2017, 09:11
Если задан сам треугольник, но нет никакой привязки к системе координат, то он может может быть расположен как угодно в ней. В начале условия стоит вообще несуразица - произвольным образом в этой системе координат ставят три точки??? Если они задаются, то все координаты известны! Наверно задаются координаты точек А и В, а также углы треугольника, которые определяют положение точки С.

Добавлено через 9 минут
Что касается системы уравнения, то все понятно. У Вас два уравнения (почему-то не добавили уравнение для стороны https://www.cyberforum.ru/cgi-bin/latex.cgi?a) и шесть неизвестных! Поэтому Mathcad и не может решить её! Число уравнений должно равняться числу неизвестных (хотя бывают исключения).
2
33 / 31 / 4
Регистрация: 10.07.2014
Сообщений: 741
12.11.2017, 09:17
1)Находим c и b. по теореме синусов.
2)Далее решаем вашу систему уравнений.
Вычитаем первое уравнение из второго и выражаем y через x.
Дальше подставляем в одно из уравнений и решаем квадратное уравнение.
1
19 / 17 / 6
Регистрация: 09.01.2014
Сообщений: 351
12.11.2017, 11:34  [ТС]
Спасибо.
1. Условие действительно не совсем внятно объяснил. Вот грамотная формулировка:
Кликните здесь для просмотра всего текста
задаются координаты точек А и В, а также углы треугольника, которые определяют положение точки С.

2.Проблема состоит в том, что решение в символьном виде ОГРОМНОЕ(даже матлаб при символьном решении пишет "я решил систему, но результат огромный - что-то не так.")
Собственно в этом проблема и заключается.
3. mathidiot, неизвестных всего 2 (xc,yc) - координаты точки С. Все остальное находится по теореме синусов.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
12.11.2017, 12:37
Странная задачка. Изначальная цель что? Для чего это?
Похоже вы хотите произвольно повернуть и сдвинуть заданный треугольник.

Так задайте его без трансформаций относительно начала координат.
Применить матрицу поворота (поворот каждой вершины на угол).
Применить матрицу переноса(к каждой вершине прибавить вектор).
1
33 / 31 / 4
Регистрация: 10.07.2014
Сообщений: 741
12.11.2017, 12:47
Попробуйте вручную решить систему уравнений. И вы получите готовую формулу.
1
Эксперт по математике/физике
 Аватар для jogano
6360 / 4067 / 1512
Регистрация: 09.10.2009
Сообщений: 7,550
Записей в блоге: 4
12.11.2017, 13:12
Ofdeath, всё матлаб делает, только надо условие формулировать внятно. Вот эти приписка важная:
Цитата Сообщение от Ofdeath Посмотреть сообщение
Изначально взаимное положение точек определяется пеленгами (углами, отложенными до необходимой прямой строго по часовой стрелке от вертикальной линии, опущенной в точку) (см. рис. 2)
Для точек А(-3;2), В(4;-1) и азимутов из А 40 градусов и из В 330 градусов результат - на рис.1
Для тех точек А и В и азимутов 150 градусов и 330 градусов точки С нет (лучи расходятся), тогда выдаётся текствое сообщение и строятся два расходящихся луча, при этом функция выдаёт координаты С как (0;0) (так как С - исходящий результат функции, то мы должны установить какие-то координаты для этой точки) - рис.2.
Кликните здесь для просмотра всего текста
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
function [C] = KoordinatojClauxABPaPb(A,B,Pa,Pb)
%KOORDINATOJCLAUXABPAPB Функция вычисляет и рисует координаты вершины С
%треугольника АВС по координатам точек А, В на плоскости и двум азимутам Pa
%и Pb точки С от двух вершин А и B (азимуты отсчитываются как в геодезии -
%от направления OY+ по часовой стрелке в градусах)
figure1 = figure('PaperUnits','centimeters',...
                 'PaperSize',[20 20],...
                 'Color',[1 1 1]);
axes('Parent',figure1,...
     'FontName','Courier New',...
     'Position',[0.1 0.1 0.8 0.8],...     
     'Visible','on');
grid on;
hold('all');
axis equal; % устанавливаются равные величины единичных отрезков по обоим осям
Pa_rad=Pa/180*pi; Pb_rad=Pb/180*pi;
U=(1/sin(Pb_rad-Pa_rad))*[-cos(Pb_rad) sin(Pb_rad); -cos(Pa_rad) sin(Pa_rad)]*(B-A)';
if U(1)<0 || U(2)<0
    msgbox('Лучи с такими азимутами расходятся, точки С не существует');
    C1=A+norm(B-A)/2*[sin(Pa_rad) cos(Pa_rad)]; C2=B+norm(B-A)/2*[sin(Pb_rad) cos(Pb_rad)];
    line([A(1) C1(1)],[A(2) C1(2)],'Color','b','LineWidth',1,'Marker','none','MarkerSize',3, 'MarkerFaceColor','y');
    line([B(1) C2(1)],[B(2) C2(2)], 'Color','b','LineWidth',1,'Marker','none','MarkerSize',3, 'MarkerFaceColor','y');
    text(1.05*A(1)-0.05*B(1),1.05*A(2)-0.025*B(2),'A','HorizontalAlignment','Left','VerticalAlignment','Top',...
       'FontName','Arial',...
       'fontsize',14,...
       'fontweight','b',...
       'BackgroundColor','none');
    text(1.05*B(1)-0.05*A(1),1.05*B(2)-0.025*A(2),'B','HorizontalAlignment','Center','VerticalAlignment','Middle',...
       'FontName','Arial',...
       'fontsize',14,...
       'fontweight','b',...
       'BackgroundColor','none');
    C=[0 0];
else
    C=A+U(1)*[sin(Pa_rad) cos(Pa_rad)];    
    line([A(1) C(1)],[A(2) C(2)],'Color','b','LineWidth',1,'Marker','o','MarkerSize',3, 'MarkerFaceColor','y');
    line([B(1) C(1)],[B(2) C(2)], 'Color','b','LineWidth',1,'Marker','o','MarkerSize',3, 'MarkerFaceColor','y');
    text(1.05*C(1)-0.025*A(1)-0.025*B(1),1.05*C(2)-0.025*A(2)-0.025*B(2),'C','HorizontalAlignment','Center','VerticalAlignment','Middle',...
       'FontName','Arial',...
       'fontsize',14,...
       'fontweight','b',...
       'BackgroundColor','none');
    text(1.05*A(1)-0.025*B(1)-0.025*C(1),1.05*A(2)-0.025*B(2)-0.025*C(2),'A','HorizontalAlignment','Left','VerticalAlignment','Top',...
       'FontName','Arial',...
       'fontsize',14,...
       'fontweight','b',...
       'BackgroundColor','none');
    text(1.05*B(1)-0.025*A(1)-0.025*C(1),1.05*B(2)-0.025*A(2)-0.025*C(2),'B','HorizontalAlignment','Center','VerticalAlignment','Middle',...
       'FontName','Arial',...
       'fontsize',14,...
       'fontweight','b',...
       'BackgroundColor','none');
end;
line([A(1) B(1)],[A(2) B(2)],'Color','r','LineWidth',2,'Marker','o','MarkerSize',3, 'MarkerFaceColor','y');
end

Вызовы функции:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
>> [C] = KoordinatojClauxABPaPb([-3 2],[4 -1],40,330)
 
C =
 
    0.1207    5.7191
 
>> [C] = KoordinatojClauxABPaPb([-3 2],[4 -1],150,330)
 
C =
 
     0     0
Миниатюры
Вычислить координаты третьей вершины треугольника по длине основания и прилежащим углам   Вычислить координаты третьей вершины треугольника по длине основания и прилежащим углам  
1
19 / 17 / 6
Регистрация: 09.01.2014
Сообщений: 351
12.11.2017, 14:06  [ТС]
Сама задача - некоторое подобие триангуляции. Цель - зная координаты двух объектов-наблюдателей(А и В) и их пеленги на объект наблюдения(Па и Пв) определить координаты объекта наблюдения(С).
Я в конце концов просто подошел с другой стороны, составил такую систему:
yc-ya=tan(pi/2 - Па)*(xc-xa);
yc-yb=tan(pi/2 - Пb)*(xc-xb);
и решил ее. Вроде бы она подходит для всех случаев, кроме случая когда А В и С лежат на одной прямой.
0
Эксперт по математике/физике
 Аватар для jogano
6360 / 4067 / 1512
Регистрация: 09.10.2009
Сообщений: 7,550
Записей в блоге: 4
12.11.2017, 15:01
Для точек поста #7 и азимутов 340 градусов и 30 градусов ваша система выдаёт результат С(0,3763; -7,2764). А на самом деле точки С не существует - оба луча направлены вверх и расходятся, а точка (0,3763; -7,2764) есть пересечение продолжений этих лучей, а не самих лучей. Это происходит потому, что по тангенсу угол на круге однозначно не определяется, а с точностью до 180 градусов. Но если снятие азимутов происходит корректно, тогда да, ваша формула подходит.
0
19 / 17 / 6
Регистрация: 09.01.2014
Сообщений: 351
12.11.2017, 15:35  [ТС]
А разве не получится так, что в посте #9 азимуты изначально заданы таким образом, чтобы не существовало точек пересечения? То есть на практике такое вообще невозможно.
0
Эксперт по математике/физике
 Аватар для jogano
6360 / 4067 / 1512
Регистрация: 09.10.2009
Сообщений: 7,550
Записей в блоге: 4
12.11.2017, 15:47
Цитата Сообщение от Ofdeath Посмотреть сообщение
А разве не получится так, что в посте #9 азимуты изначально заданы таким образом, чтобы не существовало точек пересечения?
Вот я как раз и предположил, что азимуты можно задать любые (правда, не учёл ситуацию, что Па-Пb кратно 180 градусам, и тогда точка С лежит где-то на АВ и координаты её нельзя определить однозначно. Программа в этом случае выдаст ошибку деления на 0 (строка 17 моего кода - деление на sin(Па-Пb) ).
Раз эти две ситуации (расхождение лучей и Па-Пb кратно 180 градусам) не возможны на практике, значит обрабатывать их не нужно и ваша формула отражает истинное положение вещей.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
12.11.2017, 18:13
xC=x(A)+b*sin(alfa)
yC=y(A)+b*cos(alfa)
Название: ScreenShot00959.jpg
Просмотров: 165

Размер: 7.9 Кб
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.11.2017, 18:13
Помогаю со студенческими работами здесь

Найти координаты третьей вершины треугольника
Даны координаты двух вершин треугольника (14;3), (46;27) и точки пересечения высот (33;1). Найти координаты третьей вершины треугольника

Определить координаты третьей вершины треугольника
Прошу помощи в написании формулы определения координат третьей вершины треугольника Правила, 5.18. Запрещено размещать задания в виде...

Найти координаты третьей вершины треугольника
Даны две вершины треугольника A(3;8) B(10;2) и точка пересечения медиан M(1;1). Найти координаты третьей вершины треугольника?! Очень...

Найти координаты третьей вершины треугольника
Нужно вывести формулу для нахождения X и Y точки C, вершины треугольника. Известны координаты точек A и B, и углы AC и BC(соответственно и...

Вычисление медиан треугольника по стороне и прилежащим к ней углам
Подруга попросила помочь, надо сделать ей задачи. Суть самой задачи: Составьте программу вычисления медиан треугольника,длина стороны...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru