| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [Геометрия] закругление угла |
| Автор: BOB4uK 25.12.2008, 19:27 |
| Есть две прямые, которые пересекаются в одной точке, нужно построить между этими прямыми дугу! Как это сделать я не знаю! Примеры дуг на рисунках... Должно получиться что то похожее как в кореле, Кривая безье... или кривая через три точки... Для прямых пересекающихся под углом 90 градусов я нашел решение, а вот для других случаев не могу! Под углом 90 градусов: int qcount=cpoint-1;//cpoint-кол -во точек в дуге... for (i = 0; i<cpoint;i++) { t= i * 0.5 * 3.14 /qcount; x = l1*cos(t); y = l2*sin(t); parray->Append(x,y); } //потом переносим в центр координат(кот находим) и поворачиваем относительно прямых... http://ipicture.ru/ |
| Автор: 2p0i 25.12.2008, 19:55 |
| Для прямых, которые пересекаются не под прямым углом, можно сначала применить преобразование координат, которое сделает угол прямым, затем найдет координаты точек, и затем выполнить обратное преобразование координат. |
| Автор: BOB4uK 25.12.2008, 20:25 |
| А это мысль! Вот только как это сделать? Подтолкните на мысль! |