Создание фаски, фиксированной ширины, между дугами. - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание фаски, фиксированной ширины, между дугами.

Создание фаски, фиксированной ширины, между дугами.

Ответ
Поиск в этой теме
Непрочитано 30.06.2006, 11:50
Создание фаски, фиксированной ширины, между дугами.
Елпанов Евгений
 
программист
 
Москва
Регистрация: 20.12.2005
Сообщений: 1,439

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

Сразу поясню, в любом случае, фаску построить можно - ширина фаски, всегда меньше радиусов дуг и их длинны (причем на много).

PS. Заранее спасибо за любые советы, можно без програмирования, для начала интересно, как такое можно нарисовать...
[ATTACH]1151653808.jpg[/ATTACH]
Просмотров: 9832
 
Автор темы   Непрочитано 30.06.2006, 15:34
#21
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от Денис Флюстиков
>Елпанов Евгений
А какие условия еще есть, т.к. если построить подобие дуг на растояние равное длине фаски, то в этом секторе можно построить бесконечное число фасок
Попробую еще более широко пояснить суть проблемы...
Нужна программа, которая будет автоматом снимать фаски со всех полилиний в чертеже, причем полилинии только из дуговых сегментов, количество сегментов в пределах 80 - 300 и количество полилиний, в среднем около 1500 в чертеже...
Нужно найти способ, чтоб задача решалась очень быстро - не более полуминуты...
Т.е. вариант с перебором не очень подходит, а жаль...
Возможно, вы предложите вариант?
У меня нет задачи, чтоб вы написали программу, нужно только найти алгоритм, дальше не проблема!
Елпанов Евгений вне форума  
 
Непрочитано 03.07.2006, 13:24
#22
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 428


Предлагаю решить квадратное уравнение:

x^2*((R1+R2)^2 - c^2 + f^2) + x*f^2*(R1 - R2) - R1*R2*f^2 = 0
[ATTACH]1151918686.jpg[/ATTACH]
ытя вне форума  
 
Непрочитано 03.07.2006, 18:10
#23
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


ытя
С квадратным уравнением все правильно, однако при тех же исходных данных (R1,R2,c,f) существует еще одна вписанная окружность и для ее радиуса будет уравнение
x^2*((R1+R2)^2 - c^2 + f^2) - x*f^2*(R1 - R2) - R1*R2*f^2 = 0
Вот тут и не понятно, как программе определить какое уравнение решать, т.к радиусы будут разные.
[ATTACH]1151935760.GIF[/ATTACH]
CB вне форума  
 
Непрочитано 04.07.2006, 10:33
#24
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 428


В условии задачи, как я понял, имелись в виду 2 дуги с одной явной общей точкой. Поэтому, определить в какой стороне искать центр вписанной окружности, думаю, не составит труда.
ытя вне форума  
 
Непрочитано 04.07.2006, 16:08
#25
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


>Елпанов Евгений
Цитата:
Задача: есть две дуги с общей точкой ....
Что это такое - <<с общей точкой>>
>ытя
Повторюсь
При одинаковых исходных данных (R1,R2,c,f) существуют две вписанных окружности разных радиусов. Решением квадратного уравнения является радиус и для варианта 1 (см.рисунок)
x^2*((R1+R2)^2 - c^2 + f^2) - x*f^2*(R1 - R2) - R1*R2*f^2 = 0
а для варианта 2
x^2*((R1+R2)^2 - c^2 + f^2) + x*f^2*(R1 - R2) - R1*R2*f^2 = 0
Честно говоря я не соображу какое еще должно быть условие чтобы была однозначность варианта нахождения радиуса. Если можешь поделись.
[ATTACH]1152014602.GIF[/ATTACH]
CB вне форума  
 
Непрочитано 04.07.2006, 16:26
#26
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Забыл упомянуть что все координаты (концы фаски, центр вписанной окружности) вычисляются ТОЛЬКО после нахождения радиуса.
CB вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание фаски, фиксированной ширины, между дугами.