Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2008, 20:47   #1
DjDizzy
 
Регистрация: 29.09.2008
Сообщений: 6
По умолчанию Помогите с формулами - треугольник, отрезок на плоскости

Уважаемые форумчане! Прошу вашей помощи, так как перелопатил Выгодского, интернет и проч, но ответа так и не нашел для себя.

Что ищу:

1. Дан треугольник, известны длины всех его сторон (a,b,c), соответственно известны координаты двух его точек A(x1,y1), B(x2,y2). Как найти координаты точки C(x3,y3)? И если мы придем к квадратному уравнению - как написать на Delphi?

2. Известны две точки A(x1,y1), B(x2,y2) - Как определить длины отрезка между этими точками?

Заранее спасибо!
DjDizzy вне форума Ответить с цитированием
Старый 29.09.2008, 20:59   #2
DjDizzy
 
Регистрация: 29.09.2008
Сообщений: 6
По умолчанию

По поводу второй задачи - ой, затупил.. (стыдно).

Вот: rastoyanie:=sqrt(sqr(x2 - x1) + sqr( y2 - y1));
DjDizzy вне форума Ответить с цитированием
Старый 29.09.2008, 23:41   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

по поводу первой задачи.
не знаю, есть ли способ проще (думаю, что может быть), но, я бы решал эту задачу так- есть две точки. есть расстояния от этих точек до третьей. чтобы найти третью точку - рисуем окружности - из точки A радиусом |AC| и из точки B - радиусом |BC| - в месте пересечения окружностей и лежит точка C

как найти пересечение двух окружностей, читаем:
http://program.rin.ru/cgi-bin/print.pl?id=647
http://forum.vingrad.ru/forum/topic-213142.html

удачи.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.09.2008, 18:58   #4
DjDizzy
 
Регистрация: 29.09.2008
Сообщений: 6
По умолчанию

Действительно не подумал про окружность на плоскости. )) Спасибо!

Если привести к конечной формуле то получается:

(x-x1)^2 + (y-y1)^2 = a^2
(x-x2)^2 + (y-y2)^2 = b^2

где x1,y1,x2,y2 - известные точки, a и b - длины двух сторон.

Как это лучше всего выразить на дельфях?
DjDizzy вне форума Ответить с цитированием
Старый 30.09.2008, 21:22   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Если Вы разобрались с математикой, то наверное разберетесь и с этим алгоритмом. Всю программу делать на Делфи лень, поэтому только основной код на Паскале. Собственно вместо Writeln;Readln; сделать
Эдиты, а сообщения вывести например через ShowMessage.
Код:
var a,b,c,x1,y1,x2,y2,ax,ay,bx,by,k,l,m,n,x0,y0,p,:extended;
begin
clrscr;
repeat
write('x1=');readln(x1);//начало стороны а
write('y1=');readln(y1);
write('x2=');readln(x2);//начало стороны b
write('y2=');readln(y2);
write('a=');readln(a); //x1,y1
write('b=');readln(b); //x2,y2
write('c=');readln(c); //нужна для проверки существования треугольника
if ((a+b)<=c)or((a+c)<=b)or((b+c)<=a)then//проверка треугольника
writeln('Ne treugolnik! Povtorite vvod!');
until (a+b>c) and(a+c>b)and(b+c>a);
x2:=x2-x1;y2:=y2-y1;//перенос в начало координат
k:=-2*x2;l:=-2*y2; //дальше решение системы и ввод дополнительных переменных чтобы избежать трехэтажных формул
m:=x2*x2+y2*y2+a*a-b*b;
x0:=-k*m*1.0/(k*k+l*l);
y0:=-l*m*1.0/(k*k+l*l);
n:=a*a-m*m*1.0/(k*k+l*l);
p:=sqrt(n/(k*k+l*l));
ax:=x0+l*p;//координаты двух искомых точек
bx:=x0-l*p;
ay:=y0-k*p;
by:=y0+k*p;
writeln('1 tochka x3=',(x1+ax):0:2,' y3=',(y1+ay):0:2);
writeln('2 tochka x3=',(x1+bx):0:2,' y3=',(y1+by):0:2);
readln
end.
Программу тестировал, работает нормально.
puporev вне форума Ответить с цитированием
Старый 01.10.2008, 17:52   #6
DjDizzy
 
Регистрация: 29.09.2008
Сообщений: 6
По умолчанию

Спасибо большое! Все отлично считает! Еще раз большое спасибо за подсказку с решением и помощь в реализации!
DjDizzy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Уравнение плоскости eoln Помощь студентам 5 27.09.2008 09:22
ПОМОГИТЕ С ПРОГРАММОЙ ПРО ТРЕУГОЛЬНИК LOTER Помощь студентам 26 30.01.2008 03:36
Проблема с формулами Умелец Microsoft Office Excel 9 12.09.2007 06:29