本文整理汇总了C++中FPoint::setXY方法的典型用法代码示例。如果您正苦于以下问题:C++ FPoint::setXY方法的具体用法?C++ FPoint::setXY怎么用?C++ FPoint::setXY使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FPoint
的用法示例。
在下文中一共展示了FPoint::setXY方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: doOneClick
bool CreateMode::doOneClick(FPoint& startPoint, FPoint& endPoint)
{
bool doCreate = false;
double xSize, ySize;
int originPoint = 0;
if (QApplication::keyboardModifiers() & Qt::ControlModifier)
return true;
PrefsContext* sizes = PrefsManager::instance()->prefsFile->getContext("ObjectSize");
bool doRemember = sizes->getBool("Remember", true);
int lmode = (createObjectMode == modeDrawLine) ? 1 : 0;
if (lmode == 0)
{
xSize = sizes->getDouble("defWidth", 100.0);
ySize = sizes->getDouble("defHeight", 100.0);
originPoint = sizes->getInt("Origin", 0);
}
else
{
xSize = sizes->getDouble("defLength", 100.0);
ySize = sizes->getDouble("defAngle", 0.0);
originPoint = sizes->getInt("OriginL", 0);
}
//#12577 Remove one click dialog
//#12577 OneClick *dia = new OneClick(m_view, ScribusView::tr("Enter Object Size"), m_doc->unitIndex(), xSize, ySize, doRemember, originPoint, lmode);
//#12577 if (dia->exec())
{
//#12577 doRemember = dia->checkRemember->isChecked();
if (lmode == 0)
{
//#12577 xSize = dia->spinWidth->value() / unitGetRatioFromIndex(m_doc->unitIndex());
//#12577 ySize = dia->spinHeight->value() / unitGetRatioFromIndex(m_doc->unitIndex());
//#12577 originPoint = dia->RotationGroup->checkedId();
if (doRemember)
{
sizes->set("defWidth", xSize);
sizes->set("defHeight", ySize);
sizes->set("Origin", originPoint);
}
endPoint.setXY(startPoint.x() + xSize, startPoint.y() + ySize);
switch (originPoint)
{
case 0:
break;
case 1:
startPoint.setX(startPoint.x() - xSize);
endPoint.setX(endPoint.x() - xSize);
break;
case 2:
startPoint.setXY(startPoint.x() - xSize / 2.0, startPoint.y() - ySize / 2.0);
endPoint.setXY(endPoint.x() - xSize / 2.0, endPoint.y() - ySize / 2.0);
break;
case 3:
startPoint.setY(startPoint.y() - ySize);
endPoint.setY(endPoint.y() - ySize);
break;
case 4:
startPoint.setXY(startPoint.x() - xSize, startPoint.y() - ySize);
endPoint.setXY(endPoint.x() - xSize, endPoint.y() - ySize);
break;
}
}
else
{
FPoint oldStart = startPoint;
//#12577 xSize = dia->spinWidth->value() / unitGetRatioFromIndex(m_doc->unitIndex());
//#12577 ySize = dia->spinHeight->value();
//#12577 originPoint = dia->RotationGroup->checkedId();
if (doRemember)
{
sizes->set("defLength", xSize);
sizes->set("defAngle", ySize);
sizes->set("OriginL", originPoint);
}
double angle = -ySize * M_PI / 180.0;
switch (originPoint)
{
case 0:
endPoint = FPoint(startPoint.x() + xSize * cos(angle), startPoint.y() + xSize * sin(angle));
break;
case 1:
startPoint = FPoint(oldStart.x() - xSize * cos(angle), oldStart.y() - xSize * sin(angle));
endPoint = oldStart;
break;
case 2:
startPoint = FPoint(oldStart.x() - xSize / 2.0 * cos(angle), oldStart.y() - xSize / 2.0 * sin(angle));
endPoint = FPoint(oldStart.x() + xSize / 2.0 * cos(angle), oldStart.y() + xSize / 2.0 * sin(angle));
break;
}
}
sizes->set("Remember", doRemember);
doCreate = true;
}
//delete dia;
return doCreate;
}
示例2: getNewItemPosition
void CanvasMode_Rotate::getNewItemPosition(PageItem* item, FPoint& pos, double& rotation)
{
double newAngle = xy2Deg(m_canvasCurrCoord.x() - m_rotCenter.x(), m_canvasCurrCoord.y() - m_rotCenter.y());
if (m_angleConstrained)
{
newAngle = constrainAngle(newAngle, m_doc->toolSettings.constrain);
/*double oldAngle = constrainAngle(m_startAngle, m_doc->toolSettings.constrain);
newAngle = m_doc->m_Selection->isMultipleSelection() ? (newAngle - oldAngle) : newAngle;*/
m_view->oldW = constrainAngle(m_view->oldW, m_doc->toolSettings.constrain);
newAngle = m_doc->m_Selection->isMultipleSelection() ? (newAngle - m_view->oldW) : newAngle;
}
else if (m_doc->m_Selection->isMultipleSelection())
newAngle = (newAngle - m_startAngle);
else
newAngle = item->rotation() - (m_startAngle - newAngle);
if (m_doc->m_Selection->isMultipleSelection())
{
QMatrix ma;
ma.translate(m_rotCenter.x(), m_rotCenter.y());
ma.scale(1, 1);
ma.rotate(newAngle);
FPoint n(item->xPos() - m_rotCenter.x(), item->yPos() - m_rotCenter.y());
pos.setXY(ma.m11() * n.x() + ma.m21() * n.y() + ma.dx(), ma.m22() * n.y() + ma.m12() * n.x() + ma.dy());
rotation = item->rotation() + newAngle;
}
else if (m_rotMode != 0)
{
FPoint n(0,0);
QMatrix ma;
ma.translate(item->xPos(), item->yPos());
ma.scale(1, 1);
ma.rotate(item->rotation());
double ro = newAngle - item->rotation();
switch (m_rotMode)
{
case 2:
ma.translate(item->width()/2.0, item->height()/2.0);
n = FPoint(-item->width()/2.0, -item->height()/2.0);
break;
case 4:
ma.translate(item->width(), item->height());
n = FPoint(-item->width(), -item->height());
break;
case 3:
ma.translate(0, item->height());
n = FPoint(0, -item->height());
break;
case 1:
ma.translate(item->width(), 0);
n = FPoint(-item->width(), 0);
break;
}
ma.rotate(ro);
pos.setXY(ma.m11() * n.x() + ma.m21() * n.y() + ma.dx(), ma.m22() * n.y() + ma.m12() * n.x() + ma.dy());
rotation = newAngle;
}
else
{
pos.setXY(item->xPos(), item->yPos());
rotation = newAngle;
}
}