本文整理汇总了C++中QLine::dy方法的典型用法代码示例。如果您正苦于以下问题:C++ QLine::dy方法的具体用法?C++ QLine::dy怎么用?C++ QLine::dy使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QLine
的用法示例。
在下文中一共展示了QLine::dy方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: line
void line(const QLine& line, Callback&& func)
{
// Sign of delta x/y
int sx = line.dx() > 0 ? 1 : -1;
int sy = line.dy() > 0 ? 1 : -1;
// Value that determines whether to move on X or Y
int error = 0;
// Absolute value of delta x/y
int deltaerry = line.dy() * sy;
int deltaerrx = line.dx() * sx;
QPoint point = line.p1();
while ( point != line.p2() )
{
func(point);
error += deltaerry;
while ( error >= deltaerrx / 2 && point.y() != line.y2() )
{
func(point);
point.setY(point.y() + sy);
error -= deltaerrx;
}
if ( point.x() != line.x2() )
point.setX(point.x() + sx);
}
func(point);
}
示例2: get_line_cross_point
QPoint Rotater::get_line_cross_point(QLine base_line, QLine rotate_line)
{
qreal k = (qreal)rotate_line.dy() / rotate_line.dx();
int x(0), y(0);
if (base_line.dy() == 0)
{
x = (base_line.y1() - rotate_line.y1()) / k + rotate_line.x1();
y = base_line.y1();
}
else if (base_line.dx() == 0)
{
y = (base_line.x1() - rotate_line.x1()) * k + rotate_line.y1();
x = base_line.x1();
}
// qDebug() << "k dx dy" << k << rotate_line.dx() << rotate_line.dy();
// qDebug() << "rotate_line x1 y1" << rotate_line.x1() << rotate_line.y1();
// qDebug() << "rotate_line x2 y2" << rotate_line.x2() << rotate_line.y2();
QPoint p(x, y);
return p;
}