Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Геометрия] закругление угла


Автор: 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
А это мысль! Вот только как это сделать? Подтолкните на мысль! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)