• 6033阅读
  • 5回复

关于graphicsitem 图形的旋转参考点的设置 [复制链接]

上一主题 下一主题
离线yiweiwei3204
 

只看楼主 倒序阅读 楼主  发表于: 2011-11-17
— 本帖被 kimtaikee 从 Qt 作品展 移动到本区(2013-05-22) —
离线wxj120bw

只看该作者 1楼 发表于: 2011-11-18
帖子发错地方了吧 兄弟 还有参考void QGraphicsItem::setTransformOriginPoint ( const QPointF & origin )手册
离线roywillow

只看该作者 2楼 发表于: 2011-11-18
LS应该是正解
或者干脆把矩形的中心就放在原点上……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线allblue

只看该作者 3楼 发表于: 2011-12-02
对,移动坐标系原点到a点,然后旋转,完成后,再将坐标系原点还原
黑暗魔法
离线祥龙九霄

只看该作者 4楼 发表于: 2013-05-21
在paint函数中绘制之前先设置中心点即可:painter->translate(a);
之后给个旋转角度painter->rotate(angle);

然后绘制矩形即可,此时的坐标值全部是以a点为圆点,所以矩形的左上角的点都是负值了。

绘制完成后必须恢复中心点和角度。
painter->rotate(-angle);
painter->translate(-a,x, -a.y);
离线skertone

只看该作者 5楼 发表于: 2013-05-24
恰好我早些天 看了看例程

    // 创建附属旋转控制,设定坐标系
    pRot = new QGraphicsRotation(this);
    pRot->setOrigin(QVector3D(bindCtrl->width()/2,bindCtrl->height()/2,0));
    pRot->setAxis(Qt::YAxis);
    this->setTransformations(QList<QGraphicsTransform *>()
                             << pRot);
快速回复
限100 字节
 
上一个 下一个