Форум программистов, компьютерный форум CyberForum.ru

Окружность Фейербаха - C++

Войти
Регистрация
Восстановить пароль
 
Freezer
1 / 1 / 0
Регистрация: 06.04.2009
Сообщений: 19
22.11.2009, 17:50     Окружность Фейербаха #1
Проверить справдливость утверждения, что середины сторон плоского треугольника, основания его высот и середины отрезков, соединяющих точку пересечения высот с каждой из вершин, лежат на одной окружности (окружности девяти точек или окружности Фейербаха), центром которой является середина отрезка , соединяющего точку пересечения высот треугольника и точку пересечения перпендикуляров, проходящих через середины его сторон.Определить координаты центра и радус окружности Фейербаха для треугольника, заданного координатами своих вершин х1,х2,х3,у1,у2,у3, где хi,уi (i=1,2,3) - действительные числа. Определить подпрограммы, необходимые для решения задачи.

Помогите написать на C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
22.11.2009, 18:58     Окружность Фейербаха #2
тут же сплошная геометрия. в ней затык или формулы в код перевести не получается?
Freezer
1 / 1 / 0
Регистрация: 06.04.2009
Сообщений: 19
22.11.2009, 22:11  [ТС]     Окружность Фейербаха #3
И то и другое
Estale
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 20
23.11.2009, 16:46     Окружность Фейербаха #4
Да, подскажите как её написать...
Estale
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 20
23.11.2009, 19:50     Окружность Фейербаха #5
Люди ну подскажите пожалуйста, что писать... Вообще не понятно...
Не понятно как вычислять координаты точки основания высот!
Help!
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
23.11.2009, 20:06     Окружность Фейербаха #6
Цитата Сообщение от Estale Посмотреть сообщение
Люди ну подскажите пожалуйста, что писать... Вообще не понятно...
Не понятно как вычислять координаты точки основания высот!
Help!
Ты знаешь координаты вершин треугольника (А,В,С), значит ты знаешь длины всех сторон и все углы, и уравнения всех прямых АВ, ВС, СВ
геометрия: можно пойти гемморойским путём, пока лучше ничего не придумал, опускаешь высоту на любую сторону (пусть строна АВ). cos(угла САВ)=x/AC, х - это отрезок от вершины А до точки основания высоты.
составляешь два уравнения
x^2=(xa-xx)^2+(ya-yy)^2 - это типа расстояния так вычисляются
(AB-x)^2=(xb-xx)^2+(yb-yy)^2

и находишь координаты основания высоты. но встаёт вопрос, а оно тебе вообще надо? мож без координат оснований высот можно обойтись.
тут скорее геометрию вспонить надо, а потом кодить
Estale
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 20
23.11.2009, 20:30     Окружность Фейербаха #7
Цитата Сообщение от TanT Посмотреть сообщение
но встаёт вопрос, а оно тебе вообще надо? мож без координат оснований высот можно обойтись.
тут скорее геометрию вспонить надо, а потом кодить
А как иначе не находя проверить справедливость утверждения?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2009, 04:45     Окружность Фейербаха
Еще ссылки по теме:

C++ Нарисовать окружность
C++ Круг, окружность в С++
C++ Закрасить окружность
Класс окружность C++
Задача на попадание в окружность C++

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

Или воспользуйтесь поиском по форуму:
Estale
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 20
08.12.2009, 04:45     Окружность Фейербаха #8
Вобщем мучался я долго... В конечном итоге получилось это... Может ещё пригодится кому-нибудь.
Вроде работает.


C++
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
#include <stdio.h>
#include <math.h>
#include <conio.h>
float cOox0 (float x1, float y1, float x2, float y2, float x3, float y3, float s)
{ float x0, t=-4;
x0=((x1*x1+y1*y1)*(y2-y3)-y1*(x2*x2+y2*y2-x3*x3-y3*y3)+y3*(x2*x2+y2*y2)-y2*(x3*x3+y3*y3))/(t*s);
return x0;
}
float cOoy0 (float x1, float y1, float x2, float y2, float x3, float y3, float s)
{ float y0;
  y0=((x1*x1+y1*y1)*(x2-x3)-x1*(x2*x2+y2*y2-x3*x3-y3*y3)+x3*(x2*x2+y2*y2)-x2*(x3*x3-y3*y3))/(4*s);
  return y0;
}
float tPvy0 (float x1, float y1, float x2, float y2, float x3, float y3)
{ float u0;
u0=(x3*x2*x2-x3*x3*x2+x1*x2*x3-x1*x2*x2-y2*y3*x3+x2*y2*y3+y3+y1*y2*x3-x2*y1*y2+x1*x3*x3-x1*x3*x1+x2*x1*x3-x2*x1*x1-y3*y1*x3+x1*y1*y3+x3*y1*y2-x1*y1*y2)/(y3*x2-y3*x3+y1*x3-y1*x2-x3*y3+x1*y3+x3*y2-x1*y2);
return u0;
}
float tPvx0 (float q, float x1, float y1, float x2, float y2, float x3, float y3)
{ float w0;
  w0=(x3*x2-x1*x2+y2*y3-y1*y2-q*(y3-y1))/(x3-x1);
  return w0;
}
 
 
 
 
 
void main()
{ float x1,y1,x2,y2,x3,y3,a,b,c,s,p,q,e,f,r,R,x0o,y0o,w0,u0;
  clrscr();
  printf("\nVvedite x1,y1: "); scanf("%f,%f",&x1,&y1);
  printf("\nVvedite x2,y2: "); scanf("%f,%f",&x2,&y2);
  printf("\nVvedite x3,y3: "); scanf("%f,%f",&x3,&y3);
  if ((x1==x2==x3)||(y1==y2==y3)||(x1==y1==x2==y2==x3==y3))
  printf ("\n RazvernytbIi treygolnik");
  else
  a=sqrt(pow((x2-x1),2)+pow((y2-y1),2));
  b=sqrt(pow((x3-x2),2)+pow((y3-y2),2));
  c=sqrt(pow((x1-x3),2)+pow((y1-y3),2));
  s=0.5*abs(x1*(y2-y3)-y1*(x2-x3)+x2*y3-y2*x3);
  R=(a*b*c)/(4*s);
  r=R/2;
  x0o=cOox0(x1,y1,x2,y2,x3,y3,s);
  y0o=cOoy0(x1,y1,x2,y2,x3,y3,s);
  q=tPvy0(x1,y1,x2,y2,x3,y3);
  p=tPvx0(q,x1,y1,x2,y2,x3,y3);
  e=(x0o+p)/2;
  f=(y0o+q)/2;
  printf("\n Centr okr Feierbaha (%5.2f,%5.2f), radius: %5.2f",e,f,r);
 
  getch();
}
Yandex
Объявления
08.12.2009, 04:45     Окружность Фейербаха
Ответ Создать тему
Опции темы

Текущее время: 04:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru