М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Robincona
Robincona
01.11.2022 08:51 •  Информатика

Заданы координаты вершин треугольника и точки. определить, лежит ли точка внутри треугольника. написать программу в c++ или хотя бы формулу, по которой высчитывать это. за внимание

👇
Ответ:
kino2011
kino2011
01.11.2022
Если точка лежит внутри треугольника, то сумма площадей образованных ей треугольников равна площади данного треугольника.
x1, y1, x2, y2, x3, y3 - координаты точек треугольника, x, y - координаты точки.
Найдем векторное произведение, которое равно удвоенной площади треугольника.
Исходный код: 
#include <iostream>
using namespace std;
int main() {
  int x1, y1, x2, y2, x3, y3, x, y;
  cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3 >> x >> y;
  if (abs((x1 - x) * (y2 - y) - (x2 - x) * (y1 - y)) +
     abs((x1 - x3) * (y - y3) - (x - x3) * (y1 - y3)) +
     abs((x - x3) * (y2 - y3) - (x2 - x3) * (y - y3)) ==
     abs((x1 - x3) * (y2 - y3) - (x2 - x3) * (y1 - y3)))
    {
      cout << "In";
    } else {
      cout << "Out";
    }
    return 0;
}
4,5(80 оценок)
Ответ:
kino2011
kino2011
01.11.2022
Если точка лежит внутри треугольника, то сумма площадей образованных ей треугольников равна площади данного треугольника.
x1, y1, x2, y2, x3, y3 - координаты точек треугольника, x, y - координаты точки.
Найдем векторное произведение, которое равно удвоенной площади треугольника.
Исходный код: 
#include <iostream>
using namespace std;
int main() {
  int x1, y1, x2, y2, x3, y3, x, y;
  cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3 >> x >> y;
  if (abs((x1 - x) * (y2 - y) - (x2 - x) * (y1 - y)) +
     abs((x1 - x3) * (y - y3) - (x - x3) * (y1 - y3)) +
     abs((x - x3) * (y2 - y3) - (x2 - x3) * (y - y3)) ==
     abs((x1 - x3) * (y2 - y3) - (x2 - x3) * (y1 - y3)))
    {
      cout << "In";
    } else {
      cout << "Out";
    }
    return 0;
}
4,5(80 оценок)
Открыть все ответы
Ответ:
Айка1111116789
Айка1111116789
01.11.2022
1.
var
f_name,s_name:string;
begin
writeln('Введите имя');
readln(f_name);
writeln('Введите фамилию');
readln(s_name);
writeln('Доброе утро ',f_name,' ',s_name);
end.

2.
var
s,a:real;
i:integer;
begin
s:=0;
for i:=1 to 5 do
begin
writeln('Введите число №',i);
readln(a);
s:=s+a;
end;
writeln('Сумма=',s)
end.

3.
var
s,a:real;
i:integer;
begin
s:=1;
for i:=1 to 3 do
begin
writeln('Введите число №',i);
readln(a);
s:=s*a;
end;
writeln('Произведение=',s);
end.

4.
var   
a, b, c, max:
integer;
 begin   
 write ('Введите три числа: ');   
readln (a, b, c);    
if a >= b then       
max := a    else       
max := b;    
if c > max then       
max := c;    
writeln ('Максимальное число: ', max); 
end.
4,7(67 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ