Задача. Треугольник задается координатами вершин на плоскости: [latex]A(x_{1},y_{1}), B(x_{2},y_{2}), C(x_{3},y_{3})[/latex]. Найти точку пересечения биссектрис [latex] I(x,y)[/latex] треугольника [latex]ABC[/latex] (центр вписанной в него окружности).
Тесты:
[latex]x_{1}[/latex] | [latex]y_{1}[/latex] | [latex]x_{2}[/latex] | [latex]y_{2}[/latex] | [latex]x_{3}[/latex] | [latex]y_{3}[/latex] | [latex]x[/latex] | [latex]y[/latex] | Комментарий |
0 | 4 | 3 | 0 | 0 | 0 | 1.00 | 1.00 | Пройден |
0 | -4 | -3 | 0 | 0 | 0 | -1.00 | -1.00 | Пройден |
-5 | -1 | 0 | -13 | -5 | -13 | -3.00 | -11.00 | Пройден |
1 | 1 | 5 | 1 | 3 | 4 | 3.00 | 2.07 | Пройден |
Код на С
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <stdio.h> #include <math.h> int main(void) { double x1,x2,x3,y1,y2,y3, a,b,c,x,y; //задаем координаты треугольника scanf("%lf %lf %lf %lf %lf %lf ", &x1, &y1, &x2, &y2, &x3, &y3); //найдем длинны сторон, чтобы воспользоваться формулой c=sqrt(pow((x1-x2),2)+pow((y1-y2),2)); a=sqrt(pow((x2-x3),2)+pow((y3-y2),2)); b=sqrt(pow((x1-x3),2)+pow((y1-y3),2)); //найдем координаты биссектрисы x=(a*x1+b*x2+c*x3)/(a+b+c); y=(a*y1+b*y2+c*y3)/(a+b+c); printf("координаты биссектрисы (%0.2lf; %0.2lf)",x,y); return 0; } |
Код на Java
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 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) throws java.lang.Exception { Scanner in=new Scanner(System.in); double x1, x2, x3, y1, y2, y3, a, b, c, x, y; x1=in.nextDouble(); y1=in.nextDouble(); x2=in.nextDouble(); y2=in.nextDouble(); x3=in.nextDouble(); y3=in.nextDouble(); c=Math.sqrt(Math.pow((x1-x2),2)+Math.pow((y1-y2),2)); a=Math.sqrt(Math.pow((x2-x3),2)+Math.pow((y3-y2),2)); b=Math.sqrt(Math.pow((x1-x3),2)+Math.pow((y1-y3),2)); x=(a*x1+b*x2+c*x3)/(a+b+c); y=(a*y1+b*y2+c*y3)/(a+b+c); System.out.print(x+" "+y); } } |
Решение:
Для нахождения координат биссектрисы воспользуемся формулами :
[latex]x=\frac{ax_{1}+bx_{2}+cx_{3}}{a+b+c}[/latex],
[latex]y=\frac{ay_{1}+by_{2}+cy_{3}}{a+b+c}[/latex] ,
где [latex] a [/latex]-длина стороны [latex]CB[/latex], [latex]b[/latex]-длина стороны [latex]AC[/latex], [latex]c[/latex]-длина стороны [latex]AB[/latex].
Для этого необходимо предварительно найти длины сторон по формуле :
[latex] AB=\sqrt{(x_{1}-x_{2})^{2}+(y_{1}-y_{2})^{2}} [/latex], где [latex] A(x_{1},y_{1}), B(x_{2},y_{2}) [/latex].
«Где а длина стороны» и дальше формулы увы не видны.
В последних двух формулах 1 и 2 написаны не как индексы.
Исправила.
Засчитано, 10 баллов.