Пожалуйста, не блокируйте рекламу!

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн Mike_B

  • *****
  • 680
  • Репутация: +78/-2
  • Пол: Мужской
Re: Черчение дуги по заданным размерам
« Ответ #30 : Февраля 05, 2008, 20:35:40 »

Test

Специально для жаждущих понять алгоритм. Думаю нет надобности показывать зависимость высоты сектора ("катет") от длины дуги.

*

Оффлайн BeArt

  • *****
  • 1016
  • Репутация: +94/-3
  • Пол: Мужской
Re: Черчение дуги по заданным размерам
« Ответ #31 : Февраля 09, 2008, 09:34:36 »
И ещё одна подобная картинка (думаю, последняя), код и скрипт.
!BeArt Code:
a =0.1
b = 360
eps = .00001
REPEAT
c = (a + b) / 2
fa = a *PI/ 720 * (d * TAN(a / 4) + d / TAN(a / 4)) - L
fc = c*PI/ 720 * (d * TAN(c / 4) + d / TAN(c / 4)) - L
IF (fa * fc) < 0 THEN b = c ELSE a = c
UNTIL (b - a) <= eps
angle = (a + b) / 2
r=180*L/(PI*angle)*0.001
PEN 1
!CIRCLE2 0,0, r
ARC2 0, 0, r, 0, angle
HOTSPOT2 0, 0
HOTSPOT2 r, 0
ROT2 angle
HOTSPOT2 r, 0
END
В параметрах вводите значение длины дуги и хорды...
Задача решена с достаточной для ArchiCad точностью (см. картинку) - eps = .00001

*

Оффлайн BeArt

  • *****
  • 1016
  • Репутация: +94/-3
  • Пол: Мужской
Re: Черчение дуги по заданным размерам
« Ответ #32 : Февраля 13, 2008, 14:56:15 »
В предыдущем примере была использована формула предложенная vlmodul
Существует иная, которая позволит частично избежать дополнительных тригонометрических вычислений, соответственно увеличить  скорость расчета, что немаловажно для подобных методов решения уравнений.

...
Поэтому для решения подобных уравнений открываем свои ученические архивы по информатике и находим лабораторную работу по отысканию неизвестных, например методом хорд (последовательное приближение с отысканием мест когда по заданным значениям функция меняет свой знак и следовательно на этом заданном интервале и находится искомый ответ (если есть несколько ответов то алгоритм еще немного усложняется). Точность задается по необходимости.)

! Код
a =0.1
b = 360
eps = .00001
REPEAT
   c = (a + b) / 2
   fa = d/SIN(a/2)-360*L/(PI*a)
   fc = d/SIN(c/2)-360*L/(PI*c)
   IF (fa * fc) < 0 THEN b = c ELSE a = c
UNTIL (b - a) <= eps
angle = (a + b) / 2
r=180*L/(PI*angle)*0.001
PEN 1
!CIRCLE2 0,0, r
ARC2 0, 0, r, 0, angle
HOTSPOT2 0, 0
HOTSPOT2 r, 0
ROT2 angle
HOTSPOT2 r, 0
END

PS pavelzb +1

*

Оффлайн vlmodul

  • **
  • 51
  • Репутация: +0/-0
Re: Черчение дуги по заданным размерам
« Ответ #33 : Февраля 18, 2008, 18:54:00 »
Спасибо,  BeArt !!!

*

О.В.Бабич

Re: Черчение дуги по заданным размерам
« Ответ #34 : Мая 14, 2009, 17:27:20 »
Я столкнулся с проблемой-по известной хорде надо построить дугу.Сделал это я так:построил равнобедренный треугольник,основанием которого
явлется хорда.Вершина треугольника и стала центром окружности.Ну а дальше всё просто

Олег

*

Оффлайн Valery W

  • *****
  • 5987
  • Репутация: +634/-14
  • Пол: Мужской
Re: Черчение дуги по заданным размерам
« Ответ #35 : Мая 14, 2009, 18:03:11 »
Да. Только как были определены длины этих двух равных сторон?
Эдак на одной хорде можно каких угодно окружностей наделать.

*

О.В.Бабич

Re: Черчение дуги по заданным размерам
« Ответ #36 : Мая 15, 2009, 03:53:07 »
 Я неправильно выразился - не равнобедренный а равносторонний треугольник все стороны которого равны длине хорды.Так правильно
И тогда длина хорды станет радиусом окружности,центр которой находится на вершине треуголника ниже хорды!


ОЛЕГ

*

Оффлайн Valery W

  • *****
  • 5987
  • Репутация: +634/-14
  • Пол: Мужской
Re: Черчение дуги по заданным размерам
« Ответ #37 : Мая 15, 2009, 12:53:44 »
Синий круг на моем скриншоте как раз построен на равностороннем треугольнике. И как видите, на этой же хорде построен и круг с другим радиусом.

Только с помощью длины хорды не найти радиус окружности!

*

О.В.Бабич

Re: Черчение дуги по заданным размерам
« Ответ #38 : Мая 16, 2009, 16:53:47 »
Признаю,поторопился сделал без внимательного анализа


Спасибо Олег

*

Оффлайн ArchiCO

  • ***
  • 107
  • Репутация: +1/-0
Re: Черчение дуги по заданным размерам
« Ответ #39 : Ноября 28, 2013, 23:31:36 »
У меня другая ситуация, подскажите пожалуйста самый удобный вариант как точно построить дугу или круг по двум касательным с нужным радиусом, например 200 (не важно чего)

*

Оффлайн Vachik

  • *****
  • 4759
  • Репутация: +734/-4
  • Пол: Мужской
Re: Черчение дуги по заданным размерам
« Ответ #40 : Ноября 28, 2013, 23:47:00 »
как точно построить дугу или круг по двум касательным с
нужным радиусом
1 вариант) Сделайте скругление (chamfer) угла.
2 вариант) Скопируйте отрезки внутрь угла на 200(неважно чего), и на их пересечении будет центр окружности.

 

Похожие темы

  Тема / Автор