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


Автор: FactoREAL 10.5.2011, 13:08
Здравствуйте. столкнулся с небольшой проблемой. Моя программа должна рисовать окружность пунктирной линией. Но как написано во всех справочникахЖ: параметр linestyle функции setlinestyle() не работет при рисовании окружностей, эллипсов и т.п. Сказано использовать параметр thickness. Но он же используется для указания толщины линий  smile Не могу найти примера использования этого параметра для задания типа линий. Подскажите пожалуйста.

Автор: FactoREAL 12.5.2011, 09:57
действительно никто не знает ? или  я как то не корректно или непонятно спросил ?

Автор: FactoREAL 13.5.2011, 09:03
подсказали мне как это делается. раз тут никто не в курсе, напишу. авось кому пригодится. начертить окружность можно используя эти формулы 

x=x0+R*cos(alfa); y=y0+R*sin(alfa). 
x,y - координаты точек окружности.
х0, у0 - координаты центра окружности.
R - радиус окружности
alfa - угол

ну а как сделать эту линию пунктиром уже самому чуток подумать надо.

Автор: kamre 15.5.2011, 13:23
Цитата(FactoREAL @ 12.5.2011,  09:57)
действительно никто не знает ? или  я как то не корректно или непонятно спросил ?

Так не понятно в чем проблема. Наверняка в используемой библиотеке. С помощью Qt легко все рисуется:
Код

#include <QApplication>
#include <QtGui/QWidget>
#include <QtGui/QPainter>

class Circle: public QWidget {
protected:
    void paintEvent(QPaintEvent *) {
        QPainter p(this);
        p.setRenderHint(QPainter::Antialiasing);
        p.setPen(QPen(QBrush(Qt::black), 3, Qt::DashLine));
        p.drawEllipse(50, 50, 100, 100);
    }
};

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    Circle c;
    c.resize(200, 200);
    c.show();
    return app.exec();
}

user posted image

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