Относится ли точка к треугольнику? С++
препод по информатике задал мне определить принадлежит ли точка M(x,y) области, внешней по отношению к треугольнику с вершинами A(a,0), B(b,0), C(0,c), где a b и c - положительные числа, причем b>a, одну программу я сделал, но он ее забраковал, потому что он не понял формулы которые там были использованы, я, если честно, тоже не понял что это за формулы. Также ему не понравилось что когда точка находится на границе треугольника программа выводит, что точка принадлежит треугольнику. А не "точка находится на ребре" или подобное.
int main()
{
float x,y,a,b,c;
cout<<"Enter a,b,c \n";
cin>>a;
cin>>b;
cin>>c;
cout<<"Enter x and y \n";
cin>>x;
cin>>y;
if (b<c)
{
if ( (y>=(a-a*x/b)) && (y>=0) && (y<=(a-a*x/c)))
{ cout<<"prinadlezhyt";}
else cout<<"ne prinadlezhyt";
}
else
cout<< " b>c \n";
}
Ответы (1 шт):
Нужно нарисовать треугольник при заданных условиях и посмотреть, как он выглядит.
Условие (y>0) понятное. Две наклонные линии, пересекающие оси в указанных точках, дают уравнения прямых "в отрезках"
x/a + y/c = 1
x/b + y/c = 1
Для первого уравнения для точек выше прямой
y/c > 1 - x/a или
y > с - с*x/a
Для второго для точек ниже прямой
y/c < 1 - x/b или
y < с - с*x/b
Вот и все условия. На ваши похожи, однако вы их написали, не применив правильно к данным конкретной задачи