Добрый день
У меня следующая задача:
Есть точки, задающие квадратную кривую Безье: p0, p2 - основные, p1 - вспомогательная.
Мне необходимо нарисовать окружность, используя эти точки. Считаем, что отрезок, проведенный через p0 и p2 делит окружность ровно напополам. А какую часть окружности для отрисовки выбрать мы определяем с какой стороны от этого отрезка лежит вспомогательная точка p1.
Перерыл все что мог, придумал пока только это:
Vec2f O( 0, 0 );
Vec2f P0( p0->getX(), p0->getY());
Vec2f P2( p2->getX(), p2->getY());
if ( O.distance( P2 ) < O.distance( P0 ) ) std::swap( P0, P2 );
double angle1 = std::atan2( C.y - P0.y, C.x - P0.x );
double angle2 = std::atan2( C.y - P2.y, C.x - P2.x );
for ( double t = angle2; t >= angle1; t -= 0.1 ) {
int x = R*cos(t);
int y = R*sin(t);
Point::drawPoint( image, x+minx, y+miny, qRgb( 255, 0, 0 ));
}
Но ничего не рисуется. Помогите, пожалуйста!
Спасибо.