![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 29.09.2008
Сообщений: 6
|
![]()
Добрый день!
Помогите пожалуйста найти алгоритм построения сегмента. Имеется: 1. Координаты точки A, точки B (соответсвенно знаем хорду AB) 2. Длина сегмента AB либо высота CD Рис 42: ![]() p.s. Надо на Pascal'e или Delphi. Заранее спасибо! Последний раз редактировалось DjDizzy; 09.02.2009 в 18:41. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 20.06.2008
Сообщений: 95
|
![]()
На ум приходит только вот что:
1) a=m/r; 2) h/2 = r*sin(a/2); где a - угол AOB (в радианах), h - длина хорды AB. Тогда, решая систему двух уравнений, получим следующее уравнение: a=2*m*sin(a/2)/h Алгоритм: 1) Организуем цикл для значений a=0...2*Pi и проверяем равенство a=2*m*sin(a/2)/h. 2) После того, как нашли a, находим r=m/a. 3) Строим сектор по известным a и r.
Не забывайте оставлять отзывы (кнопочка в левом нижнем углу сообщения)
![]() |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 20.06.2008
Сообщений: 95
|
![]()
Вот программа, реализующая приведенный мной выше алгоритм (сыровата правда):
Код:
Не забывайте оставлять отзывы (кнопочка в левом нижнем углу сообщения)
![]() Последний раз редактировалось bag; 10.02.2009 в 20:48. Причина: Проверка на отсутствие решения не нужна |
![]() |
![]() |
![]() |
#4 |
Регистрация: 29.09.2008
Сообщений: 6
|
![]()
Спасибо! То что нужно!
А если у нас вместо длины сегмента AB известна высота CD? |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 20.06.2008
Сообщений: 95
|
![]()
Тогда тем же способом решаем уравнение:
(r-y1)*(r-y1)=r*r - h*h/4, где y1 - высота CD, h - длина хорды AB. Т.е. 1) Организуем цикл для значений r=0...rmax и проверяем равенство (r-y1)*(r-y1)=r*r - h*h/4. 2) После того, как нашли r, находим a=2*arctg(x/(r-y1)), правильно обработав ситуацию, если r-y1=0. 3) Строим сектор по известным a и r.
Не забывайте оставлять отзывы (кнопочка в левом нижнем углу сообщения)
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите разобраться с алгоритмом программы | Evgenii | Помощь студентам | 10 | 07.11.2008 16:07 |
помогите с алгоритмом Фибоначчи | kardan | Помощь студентам | 8 | 01.04.2008 20:22 |
Помогите с алгоритмом сжатия изображения | Kulibim | Мультимедиа в Delphi | 3 | 20.12.2007 19:33 |
Помогите с алгоритмом Цезаря!!! Пожалуйста | ***СкаЙ*** | Помощь студентам | 6 | 05.04.2007 11:10 |