슬라이더를 사용하여 사각형을 회전하려고합니다.
슬라이더의 값은 -100에서 +100까지입니다. 이 사각형을 회전하는 데 사용하고 싶습니다.
사각형의 모서리를 계산 한 다음 행렬을 어지럽히는 등 몇 가지 시도를 했으므로 실패했습니다. (매트릭스를 사용하는 것이 더 낫다)
더 쉬운 해결책은 직사각형의 변에만 작업하는 대신 처음부터 고정 점을 정의하는 것이다.
아래 코드에서 슬라이더를 사용하여 사각형의 크기를 조정할 수 있습니다. 사각형 회전
도움 모든 형태의
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
a = 230; //positioning
b = 150; //positioning
c = 200; //size of drawing
d = 150; //size of drawing
connect(ui->horizontalSlider,SIGNAL(valueChanged(int)),this,SLOT(update()));
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::paintEvent(QPaintEvent *e)
{
QPainter painter(this);
painter.fillRect(a - ui->horizontalSlider->value(),
b - ui->horizontalSlider->value(),
c + ui->horizontalSlider->value() * 2,
d + ui->horizontalSlider->value() * 2, Qt::green);
}
이 많이 감사합니다. 회전 포인트를 얻으려면
R = [ cos(t), -sin(t);
sin(t), cos(t)]
: 첫째로 여기
회전 행렬에 대해 조금 읽고 좌표를 변환하는 방법을 참조하십시오. http://en.wikipedia.org/wiki/Rotation_matrix Qt를 모르지만, 모서리를 변형 한 다음 직사각형을 다시 그려야합니다. – vsoftco
정확하게 문제입니다. Qt에서 회전 행렬을 올바르게 구현하지 못했습니다. –