Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Центр помощи > [геометрия]Как построить Дугу на прямой |
Автор: BOB4uK 11.7.2008, 17:58 |
Как построить Дугу на прямой из двух точек зная длину дуги, количество точек (который формируют отрезки) и длину прямой на которой она строится? |
Автор: polosatij 12.7.2008, 04:11 |
ни черта не понятнА.. ![]() ты бы не мог объяснить по понятливее? ![]() |
Автор: BOB4uK 12.7.2008, 06:35 |
Вот смотри, моя прога позволяет строить схему помещения! Вот у меня на стене есть полу эллипс, который мне нужно занести в прогу! Для этого я замеряю длину от начала дуги и до конца дуги - получаю длинну дуги, так же я знаю что длина основания дуги равна какойто переменной! зная эти данные можно построить дугу указав количество точек - для плавной дуги или угловатой (если мало точек)! Такие проги есть и такой алгоритм уже сделан, но мне его ни кто не скажет, поэтому сам до ганяю... |
Автор: polosatij 12.7.2008, 13:42 |
ты не объяснил ещё как именно должна проходить дуга и какая она именна.. у неё могут быть разные степени вогнутости.. но.. и может быть, например, такой вариант:![]() Добавлено через 1 минуту и 6 секунд можно также взятъ не круг, а элипс ![]() |
Автор: BOB4uK 12.7.2008, 15:05 |
Именно так и может быть! это определяется наверное от длины дуги, может поличиться вообще окружность с небольшой дыркой... |
Автор: polosatij 12.7.2008, 15:25 |
ню, тогда всё просто ![]() ![]() ![]() |
Автор: BOB4uK 13.7.2008, 07:00 |
Смутно помню третий класс! может ссылку дашь? Почитал теоремку, но ничего такого чтобы подсказало решение не встретил! Наведи на мысль... |
Автор: polosatij 13.7.2008, 13:29 |
госпади.. длинна красным помечена - тебе известна.. делишь её пополам.. углубление тебе тоже известно.. составляешь уравнение.. х - это длинна. (известная величина) w1 - высота верхнего треугольника (известная величина) w2 - высота нижнего треугольника r - радиус r² = (х/2)² + w2² r² = w1 + w2 => w2 = w1 - r² подставляем в первое уравнение: r² = (х/2)² + (w1 - r²)² // w1, x - известны, находишь радиус.. как только найдёшь радиус.. узнаешь где у круга находится центр.. а потом, считаешь точки удаления и рисуешь между ними линии.. чем больше точек возьмёшь, тем больше точность.. ![]() +1 ![]() |
Автор: SoWa 15.7.2008, 07:10 |
Не каждая дуга- часть окружности. А тут видимо случай, где дуга задается длинной основания и высотой. Если длинна основания маленькая, а высота большая(больше основания раз в 5), то точно это не часть окружности, а часть эллипса(ооочень приближеная к половине эллиппса) |
Автор: BOB4uK 15.7.2008, 17:13 |
Я так и не понял как построить если известно только основание, длина дуги и кол-во точек для построения многоугольника... |
Автор: polosatij 16.7.2008, 01:03 |
млин, вот ты буратинА ![]() ладна.. не обижайся.. вот тебе ещё один рисунок: терь посмотри на мои формулы.. если не поймёшь, денег за код попрошу ![]() |
Автор: SoWa 16.7.2008, 07:34 |
Та-да. А если такая все-же ситуация - учитываем коэффициенты эллипса. |
Автор: polosatij 16.7.2008, 12:20 | ||
погодите его грузить, пусть он сначала с кругом разберётся ![]() ![]() |
Автор: BOB4uK 16.7.2008, 15:42 |
Я не понимаю как я могу узнать w1 и w2 если мне только известно L1 - длина дуги и L2 - длина основания? http://ipicture.ru/ |
Автор: maxim1000 16.7.2008, 16:06 |
длина дуги L1=r*alpha (alpha - угол в радианах между радиусами, проведёнными к концам дуги) L2=2*r*sin(alpha/2) для удобства beta=alpha/2 тогда sin(beta)/beta=L2/L1 если я не ошибаюсь (хотя не уверен), аналитически такое не решается, можно использовать численные методы |
Автор: BOB4uK 16.7.2008, 16:42 |
Может быть и такой вариант: http://ipicture.ru/ |
Автор: BOB4uK 20.7.2008, 19:56 |
А что там упоминали про коэф-ты для эллипса? Радиус нашел, центр окружности тоже (наверное)! А по подробнее можно про "а потом, считаешь точки удаления"? |