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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2008, 18:59   #1
Lion
 
Регистрация: 27.03.2008
Сообщений: 7
По умолчанию Построить треугольник по координатам его вершин и описать около него окружность.

Люди добрые помогить пожалуйста сделать программу в Turbo Delphi 2006.vcl forms application.Я уже неделю мучаюсь сделать эту задачу ничего не получается,мне надо правда сдавать её уже завтра,кто нибудь попробует её сделать до завтра, до 13.00???
я уже все формулы перерыл ну чё то тугодумне судите строго.
труегольник строю и всё замыкается,а как описать окружность никак.
окружность пробовал рисовать через canvas.arc но не могу додумать какие точки надо туда вписывать.

Последний раз редактировалось Lion; 27.03.2008 в 19:07.
Lion вне форума Ответить с цитированием
Старый 27.03.2008, 19:21   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

http://img91.imageshack.us/my.php?image=graphic1ho4.jpg
Появились идеи?
Можно ещё решить систему трёх квадратных урвнений.
B_N вне форума Ответить с цитированием
Старый 27.03.2008, 21:39   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Если треугольник существует, то:
1.Находим уравнения двух сторон.
2. Находим уравнения нормалей к этим сторонам, проходящих через середины сторон.
3.Решаем систему из двух уравнений с двумя неизвестными-находим центр окружности.
4.Находим радиус-расстояние от центра до любой вершины.
5.Рисуем окружность.
Все формулы в школьном учебнике геометрии, или в любом учебнике по аналитической геометрии.
puporev вне форума Ответить с цитированием
Старый 28.03.2008, 11:24   #4
Lion
 
Регистрация: 27.03.2008
Сообщений: 7
По умолчанию

Да это понятно что формулы есть все,а как это организовать в делфи.
Там получаются действительные числа а нужно целые для описания окружности.Может кто нибудь попробует её сделать,плииззз
Напишите код

Последний раз редактировалось Lion; 28.03.2008 в 12:01.
Lion вне форума Ответить с цитированием
Старый 28.03.2008, 12:07   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

При описании координат точек применяется функция Round, например
x+round(sin(x))-это целое количество пикселей.
puporev вне форума Ответить с цитированием
Старый 28.03.2008, 19:19   #6
Lion
 
Регистрация: 27.03.2008
Сообщений: 7
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
При описании координат точек применяется функция Round, например
x+round(sin(x))-это целое количество пикселей.
можешь её сделать? я её не могу сделать хоть убей.
Lion вне форума Ответить с цитированием
Старый 28.03.2008, 19:47   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Я то могу ее сделать, но учить вместо тебя геометрию, которую подзабыл, полдня считать координаты за тебя не собираюсь, мне это не интересно.
puporev вне форума Ответить с цитированием
Старый 29.03.2008, 11:20   #8
Lion
 
Регистрация: 27.03.2008
Сообщений: 7
По умолчанию

PHP код:
procedure TForm1.Button1Click(SenderTObject);
 var  
pol:array[1..3]of TPoint;
      
xc,yc,x1,x2,x3,y1,y2,y3integer;
begin
 x1 
:=StrToInt(edit1.Text) ;
 
y1 :=StrToInt(edit2.Text);
 
x2 :=StrToInt(edit3.Text);
 
y2 :=StrToInt(edit4.Text);
 
x3 :=StrToInt(edit5.Text);
 
y3 :=StrToInt(edit6.Text);
 if 
not((x1<1) or (y1<1) or (x2<1) or (y2<1) or (x3<1) or (y3<1) or (x1>400) or (y1>400) or (x2>400) or (y2>400) or (x3>400) or (y3>400)) then
  begin
    label7
.Visible:=false;
    
xc:=round(x1+(x3-x1)/2);
    
yc:=round(y2+(y3-y2)/2);
    
Canvas.Ellipse(x1,y2,x3,(2*yc-(y2)+(y3-y2)));
    
pol[1].:=x1;
    
pol[1].:=y1;
    
pol[2].:=x2;
    
pol[2].:=y2;
    
pol[3].:=x3;
    
pol[3].:=y3;
    
Canvas.Polygon(pol); 
Посмотри тут что то неправильно, 2 точки правильно рисует а одна немного выходит за пределы.Пожалуйста сделай у меня больше надежды ненакого.
Lion вне форума Ответить с цитированием
Старый 29.03.2008, 18:47   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну вы поймите, что вам нужно посчитать для начала центр треугольника!!!! Как - вам рассказал Puporev (смотрите выше...)
То, что Вы написали - никуда не годится. К сожалению, это не так просто, как хотелось бы! ;-(
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.03.2008, 20:32   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Кстати, есть такая книжка:
Название: Программирование в алгоритмах
Автор: Окулов С.М.
Издательство: Бином
Год: 2002
Страниц: 341

она была в сети в эл.виде..
например, попробуйте глянуть тут...


Там есть все нужные Вам алгоритмы и формулы (только прийдётся немножко подумать, как их применить).
вот, цитирую оттуда:
как проверить, можно ли построить треугольник.
Даны три отрезка а, b, с. Для существования треугольника с
такими длинами сторон требуется одновременное выполнение
условий (а+Ь>с), (Ь+с>а) и (а+с>Ь).
<...>
Три перпендикуляра к сторонам треугольника, проведенные через их середины, пересекаются в одной точке, служащей центром описанного круга. В тупоугольном треугольнике эта точка лежит вне треугольника, в остроугольном — внутри, в прямоугольном — на середине гипотенузы.
Его радиус вычисляется по формуле
R=(a*b*c)/(4*SQRT(p*(p-a)*(p-b)*(p-c))).
где p=(a+b+c)/2
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан двумерный массив случайных чисел. Построить одномерный из исходного, выбрав из него все числа кратные ProWinD Паскаль, Turbo Pascal, PascalABC.NET 2 16.06.2008 20:12
Поиск разделяющих вершин в произвольном графе... Agnazar Помощь студентам 4 29.05.2008 22:51
нарисовать окружность состоящую из 36 разноцветных квадратов Invisible Hunter Паскаль, Turbo Pascal, PascalABC.NET 2 29.05.2008 18:03
Нужно передвигать окружность с ускорением/ Задачка по Делфи7 НУБ!!! Помощь студентам 4 20.05.2008 21:29
Сайт был недоступен около 40 часов, официальные причины. Alar О форуме и сайтах клуба 2 09.03.2007 16:46