Как мне найти общую площадь треугольника из областей трех сечений из шести, созданных параллельными линиями по одной от каждой вершины? - PullRequest
1 голос
/ 26 мая 2019

В этом трианге:

enter image description here

Учитывая площади треугольников UPZ ZPW и WPY, как рассчитать общую площадь?

Я уже нашел решение из доступных материалов на сайте. Но я хочу знать, как получить это решение.

    cin >> a >> b >> c;
    // a is UPZ, b is ZPW, c is WPY

    double n = b*(a+b)*(a+b+c);
    double d = b*(a+b)-(a*c);

    cout << (n / d) ;

1 Ответ

1 голос
/ 27 мая 2019

Действительно, этот вопрос не по теме, это проблема геометрии.Способ найти площадь большого треугольника UVW состоит в том, чтобы применить связь между областями и соотношениями длин отрезков треугольника UYW, а затем применить теорему Менелая, чтобы вывести соотношение WY / WV, которое показывает соотношение между областями.треугольника UYW и UVW.

Пусть h_p будет длиной высоты от точки P до края UW.Тогда

a = UZ * h_p / 2   and   b = ZW * h_p / 2

Таким образом:

a / b = (UZ * h_p / 2) / (ZW * h_p / 2) = UZ / ZW 

Пусть h_W будет длиной высоты от точки W до линии UY

a + b = Area(WPU) = PU * h_W / 2   and   c = YP * h_w / 2

Таким образом:

c / (a + b) = (YP * h_W / 2) / (PU * h_W / 2) = YP / PU

По теореме Менелая для треугольника UWY и прямой VZ с P на VZ получаем:

1 = ( VW / VY ) * ( YP / PU ) * ( UZ / ZW ) = ( VW / WY ) * (c / (a + b)) * (a / b)
so  
VY / VW = (c * a) / ( b * (a + b))

и, следовательно:

WY / VW = 1 - (VY / VW) = 1 - (c*a) / ( b*(a + b)) = (a*b + b^2 - a*c ) / (a*b + b^2)

Пусть h_U будет длиной высоты от точки U до края VW.Тогда

Area(UVW) =  VW * h_U / 2
and
Area(UYW) = a + b + c = WY * h_U / 2 

Следовательно

Area(UVW) / Area(UYW) = Area(UVW) / (a + b + c) = (VW * h_U / 2) / (WY * h_U / 2) = VW / WY

Итак

Area(UVW) / Area(UYW) = VW / WY = (a*b + b^2) / (a*b + b^2 - a*c)
Area(UVW) / Area(UYW) = Area(UVW) / (a + b + c) = (a*b + b^2) / (a*b + b^2 - a*c)

Наконец, получаем формулу:

Area(UVW) = (a + b + c) * (a*b + b^2) / (a*b + b^2 - a*c)
Area(UVW) = b * (a + b) * (a + b + c) / (b*(a + b) - a*c)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...