2012-01-28 7 views
0

Мне нужно нарисовать дугу на устройстве D2D, есть ли функция, которая делает это? (Что-то вроде DrawLine или DrawEllipse) В противном случае я видел, что есть функция ArcSegment, которая возвращает структура D2D1_ARC_SEGMENT, как я могу это сделать?C++ Рисование дуг в устройстве Direct2D

ответ

1

D2D1_ARC_SEGMENT может использоваться при заполнении геометрии пути (ID2D1PathGeometry). После того, как вы добавили дугу, которую хотите по пути, вы можете нарисовать ее, используя ID2D1RenderTarget::Draw/FillGeometry().

0

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

Я рекомендую смотреть в шлицы и как они рассчитываются wiki

кажется, хорошее место, чтобы начать. Затем вы можете сгенерировать свою дугу с формулой и несколькими вызовами DrawLine.

Редактировать: или даже this может служить вам лучше.